/* -----------------------------------------------------------------------------------
Basics
----------------------------------------------------------------------------------- */
* {
	margin:0; padding:0;
	outline:0;
}

body {
	font-family: "proxima-nova", Helvetica, Arial, sans-serif; font-size: 17px; line-height: 27px; font-weight: 300; color: #222;
    background-color: #f3f3f1;
}

h1,h2,h3,.mini-headline {
	margin:0; padding:0;
	font-weight: 600;
}
h1 strong,
h2 strong,
h3 strong,
.mini-headline {
	padding-left: 5px; padding-right: 5px;
	background-size: 100% 100%;
	background: linear-gradient(transparent, transparent 40%, #0e6292 0, #0e6292 100%, transparent 0) no-repeat;
	-webkit-box-decoration-break: clone;
			box-decoration-break: clone;
}
h1 {
	margin-bottom: 30px;
	font-size: 26px; line-height: 36px;
}
h2 {
	margin-bottom: 15px;
	font-size: 22px; line-height: 32px;
}
h2.more-margin {
	margin-bottom: 25px;
}
h3 {
	margin-bottom: 10px;
	font-size: 20px; line-height: 30px;
}
.mini-headline {
	display: inline-block;
	margin-bottom: 10px;
	font-size: 13px; line-height: 15px;
}
@media (max-width: 575px) {		
    h1, h2, h3 {
        hyphens: auto; 
        overflow-wrap: break-word;
        word-break: normal;
    }
}
@media (min-width: 768px) {		
    h1 {
        font-size: 30px; line-height: 40px;
    }
    h2 {
        font-size: 24px; line-height: 34px;
    }
}

a,
a:hover,
a:focus {
	color: #222; text-decoration: none;
	outline: none;
}
main a,
main a:hover,
main a:focus {
	color: #222; text-decoration: underline;
}

p {
    margin-bottom: 30px;
}

strong {
	font-weight: 600;
}

main ul,
main ol {
	margin: 0 0 30px 20px; padding-left: 0;
}

main .module-foto-gross-text ul,
main .textabschnitt ul {
    list-style: none;
    padding: 0; margin: -5px 0 30px 0; }

    main .module-foto-gross-text ul li,
    main .textabschnitt ul li {
        position: relative;
        padding-left: 30px;
    }
    main .module-foto-gross-text ul li::before,
    main .textabschnitt ul li::before {
        content: "";
        position: absolute; left: 0; top: 14px;
        width: 17px; height: 17px;
        transform: translateY(-50%);
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 1200'><path fill='%230e6292' d='m600.14 0c-330.94 0-600.14 268.92-600.14 599.86 0 330.94 269.21 600.14 600.14 600.14s599.86-269.21 599.86-600.14-268.92-599.86-599.86-599.86zm0 75c290.39 0 524.86 234.47 524.86 524.86s-234.47 525.14-524.86 525.14-525.14-234.74-525.14-525.14c0-290.4 234.74-524.86 525.14-524.86zm254.58 329.86c-9.9375 0.09375-19.5 4.125-26.484 11.25l-285.66 288.14-170.81-172.18v-0.046875c-14.531-14.625-38.156-14.766-52.875-0.28125-7.125 6.9844-11.156 16.547-11.203 26.531-0.046875 9.9375 3.8906 19.547 10.922 26.625l197.39 198.79c7.0312 7.0312 16.594 11.016 26.531 11.016 9.9844 0 19.5-3.9844 26.578-11.016l312.28-314.72c7.0781-7.0781 11.062-16.641 11.062-26.625s-3.9844-19.547-11.062-26.578-16.688-10.969-26.672-10.922z'/></svg>");
        background-size: contain;
        background-repeat: no-repeat;
    }

img {
	border: none;
}
figure {
	margin: 0; padding: 0;
}

iframe {
    margin-bottom: 30px;
}

.text-center {
	text-align: center;
}

a.button,
button.button {
    position: relative;
	display: inline-block;
	padding: 18px 70px 18px 35px;
	font-size: 16px; line-height: 16px; color: #fff; font-weight: 300; cursor: pointer; text-decoration: none;
	outline: none;
	background-color: #0e6292;
    border: none; border-radius: 28px;
    box-shadow: inset 0px 0px 0px 2px #0e6292;
    -webkit-transition: all .2s ease;
            transition: all .2s ease;
}
a.button:hover,
button.button:hover {
    color: #fff; text-decoration: none;
    background-color: #0e6292;
}
a.button::after,
button.button::after {
    position: absolute; right: 30px;
    width: 16px; height: 16px;
  content: "";
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 1200' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='m205.37 994.63c5.9805 5.9805 14.09 9.3438 22.551 9.3438 8.457 0 16.566-3.3633 22.547-9.3438l813.75-813.75v915.23c0 11.395 6.0781 21.922 15.945 27.617 9.8672 5.6992 22.023 5.6992 31.891 0 9.8672-5.6953 15.945-16.223 15.945-27.617v-992.22c-0.003906-2.0977-0.21484-4.1875-0.62891-6.2461-0.1875-0.94531-0.53906-1.8164-0.80859-2.7305-0.27734-1.0898-0.60938-2.1641-1-3.2188-0.48047-1.0469-1.0195-2.0664-1.6094-3.0547-0.44531-0.8125-0.80078-1.6562-1.3203-2.4336-2.3359-3.4961-5.3398-6.5-8.832-8.8359-0.80469-0.53906-1.6758-0.91016-2.5156-1.3672-0.96484-0.57422-1.957-1.0938-2.9727-1.5625-1.0742-0.39844-2.168-0.73828-3.2773-1.0195-0.89453-0.26172-1.75-0.60938-2.6758-0.79297-2.0586-0.41406-4.1523-0.625-6.25-0.62891h-992.22c-11.395 0-21.922 6.0781-27.617 15.945-5.6992 9.8672-5.6992 22.023 0 31.891 5.6953 9.8672 16.223 15.945 27.617 15.945h915.23l-813.75 813.75c-5.9805 5.9805-9.3438 14.09-9.3438 22.547 0 8.4609 3.3633 16.57 9.3438 22.551z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-size: 16px;
  transition: transform 0.2s ease-in-out;
}

/* Text Button */
a.text-button,
button.text-button {
    position: relative;
	display: inline-block;
	padding: 0 40px 4px 0;
	font-size: 16px; line-height: 16px; color: #222; font-weight: 600; cursor: pointer;
    background: none;
    border: none;
    border-bottom: 1px solid #222;
    -webkit-transition: all .2s ease;
            transition: all .2s ease;
}
a.text-button::after,
button.text-button::after {
    position: absolute; top: -5px; right: -4px;
    width: 24px; height: 24px;
    content: "";
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath vector-effect='non-scaling-stroke' d='M7 17L17 7'/%3e%3cpath vector-effect='non-scaling-stroke' d='M9 7h8v8'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-size: 24px;
    transition: transform 0.2s ease-in-out;
}

/* Blockquote */
 blockquote {
	 margin: 0 0 30px 0;
	 padding: 40px 20px;
     font-size: 18px; line-height: 28px; color: #222;
	 border-left: 3px solid #222;
     background-color: #fff; }

     blockquote p {
         margin: 0; }

        blockquote p a,
        blockquote p a:hover {
            color: #222;
}
@media (min-width: 768px) {
     blockquote {
         padding: 50px 40px;
         font-size: 20px; line-height: 30px;
    }
}

/* Selection */
::selection {
    color: #222;
    background: #fedc73; /* WebKit/Blink Browsers */
}
::-moz-selection {
    color: #222;
    background: #fedc73; /* Gecko Browsers */
}

/* Icons */
i.bi {
    display: inline-block;
    position: relative;
    margin-right: 8px;
}
i.bi:before {
    display: inline-block;
    width: 17px; height: 17px;
    content: '';
    vertical-align: -3px;
}
i.bi.lg:before {
    width: 30px; height: 30px;
}
i.bi.bi-phone:before {
    background-image: url("data:image/svg+xml,<svg viewBox='0 0 16 16' fill='%23ffffff' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M3.654 1.328a.678.678 0 0 0-1.015-.063L1.605 2.3c-.483.484-.661 1.169-.45 1.77a17.6 17.6 0 0 0 4.168 6.608 17.6 17.6 0 0 0 6.608 4.168c.601.211 1.286.033 1.77-.45l1.034-1.034a.678.678 0 0 0-.063-1.015l-2.307-1.794a.68.68 0 0 0-.58-.122l-2.19.547a1.75 1.75 0 0 1-1.657-.459L5.482 8.062a1.75 1.75 0 0 1-.46-1.657l.548-2.19a.68.68 0 0 0-.122-.58zM1.884.511a1.745 1.745 0 0 1 2.612.163L6.29 2.98c.329.423.445.974.315 1.494l-.547 2.19a.68.68 0 0 0 .178.643l2.457 2.457a.68.68 0 0 0 .644.178l2.189-.547a1.75 1.75 0 0 1 1.494.315l2.306 1.794c.829.645.905 1.87.163 2.611l-1.034 1.034c-.74.74-1.846 1.065-2.877.702a18.6 18.6 0 0 1-7.01-4.42 18.6 18.6 0 0 1-4.42-7.009c-.362-1.03-.037-2.137.703-2.877z' clip-rule='evenodd'/></svg>");
    background-repeat: no-repeat;
}
i.bi.bi-mail:before {
    background-image: url("data:image/svg+xml,<svg viewBox='0 0 16 16' fill='%23ffffff' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1zm13 2.383-4.708 2.825L15 11.105zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741M1 11.105l4.708-2.897L1 5.383z' clip-rule='evenodd'/></svg>");
    background-repeat: no-repeat;
}
i.bi.bi-education:before {
    background-image: url("data:image/svg+xml,<svg viewBox='0 0 576 448' fill='%23222222' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M443.5 209l4.5 79c2 35.25-71.75 64-160 64s-162-28.75-160-64l4.5-79 143.5 45.25c4 1.25 8 1.75 12 1.75s8-0.5 12-1.75zM576 128c0 3.5-2.25 6.5-5.5 7.75l-280 88c-1 0.25-1.75 0.25-2.5 0.25s-1.5 0-2.5-0.25l-163-51.5c-14.25 11.25-24.25 38.75-26.25 72.5 9.5 5.5 15.75 15.5 15.75 27.25 0 11.25-5.75 21-14.5 26.75l14.5 108.25c0.25 2.25-0.5 4.5-2 6.25s-3.75 2.75-6 2.75h-48c-2.25 0-4.5-1-6-2.75s-2.25-4-2-6.25l14.5-108.25c-8.75-5.75-14.5-15.5-14.5-26.75 0-12 6.75-22.25 16.25-27.75 1.5-29.25 9-60.75 24.5-82.5l-83.25-26c-3.25-1.25-5.5-4.25-5.5-7.75s2.25-6.5 5.5-7.75l280-88c1-0.25 1.75-0.25 2.5-0.25s1.5 0 2.5 0.25l280 88c3.25 1.25 5.5 4.25 5.5 7.75z' clip-rule='evenodd'/></svg>");
    background-repeat: no-repeat;
}
i.bi.bi-position:before {
    background-image: url("data:image/svg+xml,<svg viewBox='0 0 16 16' fill='%23222222' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M6.5 1A1.5 1.5 0 0 0 5 2.5V3H1.5A1.5 1.5 0 0 0 0 4.5v8A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5v-8A1.5 1.5 0 0 0 14.5 3H11v-.5A1.5 1.5 0 0 0 9.5 1zm0 1h3a.5.5 0 0 1 .5.5V3H6v-.5a.5.5 0 0 1 .5-.5m1.886 6.914L15 7.151V12.5a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5V7.15l6.614 1.764a1.5 1.5 0 0 0 .772 0M1.5 4h13a.5.5 0 0 1 .5.5v1.616L8.129 7.948a.5.5 0 0 1-.258 0L1 6.116V4.5a.5.5 0 0 1 .5-.5'/></svg>");
    background-repeat: no-repeat;
}
i.bi.bi-fax:before {
    background-image: url("data:image/svg+xml,<svg viewBox='0 0 16 16' fill='%23222222' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1'/><path d='M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1'/></svg>");
    background-repeat: no-repeat;
}

.text-small {
    font-size: 13px; line-height: 23px;
}

.hide {
    display: none;
}

.tooltip {
    z-index: 1;
}
.tooltip-inner a {
    font-family: "proxima-nova", Helvetica, Arial, sans-serif; color: #fff; text-decoration: underline;
}
.tooltip-inner {
    font-size: 14px; line-height: 20px;
    padding: 10px 15px 15px 15px;
    font-family: "proxima-nova", Helvetica, Arial, sans-serif; color: #fff; font-weight: 300;
    background-color: #222;
}


/* -----------------------------------------------------------------------------------
Container
----------------------------------------------------------------------------------- */
.container-fluid {
	position: relative;
	max-width: 1400px;
}
.container-fluid.sm {
    max-width: 1200px;
}
.container-fluid.xl {
	max-width: 1730px;
}
.container-fluid,
.container {
    padding: 0 20px;
}
.container-fluid.no-padding,
.container.no-padding {
    padding: 0;
}

.row {
    margin-left: -15px; margin-right: -15px; }

    .row [class^="col-"] {
        padding-left: 15px; padding-right: 15px;
}
.row.xs {
    margin-left: -10px; margin-right: -10px; }

    .row.xs [class^="col-"] {
        padding-left: 10px; padding-right: 10px;
}
@media (min-width: 768px) {
    .container {
        padding-right: 30px; padding-left: 30px;
        max-width: 630px;
    }
    .container.md {
        max-width: 1000px;
    }
    .container.lg {
        max-width: 1200px;
    }
    .container.xl {
        max-width: 1400px;
    }
    .container.xxl {
        max-width: 1620px;
    }
    .container-fluid {
        padding-left: 30px; padding-right: 30px;
    }
}
@media (min-width: 992px) {
    .container {
        padding-right: 40px; padding-left: 40px;
        max-width: 800px;
    }
    .container-fluid {
        padding-left: 40px; padding-right: 40px;
    }
	.row {
		margin-left: -20px; margin-right: -20px; }

		.row [class^="col-"] {
			padding-left: 20px; padding-right: 20px;
	}
}
.row.no-space {
    margin-left: 0; margin-right: 0; }

    .row.no-space .no-space[class^="col-"] {
        margin-bottom: 0; padding: 0;
}


/* -----------------------------------------------------------------------------------
Navigation
----------------------------------------------------------------------------------- */
:root {
  /* Höhe der fixen Navbar: Desktop ≈95 px, mobile ≈70 px */
  --nav-height: 95px;
}
@media (max-width: 991px) {
  :root { --nav-height: 70px; }
}

/* Weicher Bildlauf */
html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--nav-height);
}

/* alle Sektionen mit id nutzen den Header-Offset */
[id] {
  scroll-margin-top: var(--nav-height);
}

.navbar {
    padding-left: 0; padding-right: 0;
}

.navbar-light.bg-light {
    background-color: #f3f3f1 !important;
    -webkit-box-shadow: none;
            box-shadow: none; }

        .navbar-light .navbar-brand img {
            margin-top: 4px; margin-bottom: 4px;
            max-height: 50px; width: auto;
        }

        .navbar-toggler {
            margin-top: -10px; padding: 0;
            border: none;
            background: transparent !important; }

            .navbar-toggler .icon-bar {
                width: 29px; 
                height: 3px;
                background-color: #222;
                display: block;
                transition: all 0.2s;
                margin-top: 5px
            }
            .navbar-toggler .icon-bar.top-bar {
                transform: rotate(45deg);
                transform-origin: 10% 10%;
            }
            .navbar-toggler .icon-bar.middle-bar {
                opacity: 0;
            }
            .navbar-toggler .icon-bar.bottom-bar {
                transform: rotate(-45deg);
                transform-origin: 10% 90%;
            }
            .navbar-toggler.collapsed .icon-bar.top-bar {
                transform: rotate(0);
            }
            .navbar-toggler.collapsed .icon-bar.middle-bar {
                opacity: 1;
            }
            .navbar-toggler.collapsed .icon-bar.bottom-bar {
                transform: rotate(0);
        }

        .navbar-light .navbar-nav a.nav-link {
            font-family: "urw-din", Helvetica, Arial, sans-serif; font-size: 17px; line-height: 17px; color: #222; font-weight: 400; text-transform: uppercase; letter-spacing: 1px;
            padding: 0 0 5px 0;
            border-bottom: 1px solid transparent;
            -webkit-transition: all .2s ease;
                    transition: all .2s ease;
        }
        .navbar-light .navbar-nav a.nav-link:hover,
        .navbar-light .navbar-nav a.nav-link:focus {
            color: #0e6292;
        }
        .navbar-light .navbar-nav a.nav-link.active {
            color: #222;
            border-bottom-color: #222; }

            .dropdown-toggle::after {
                content: "";
                display: inline-block;
                margin-left: 10px;
                width: 7px; height: 7px;
                border: none; border-bottom: 2px solid #222; border-right: 2px solid #222;
                -webkit-transform: rotate(45deg);
                        transform: rotate(45deg);
            }

            .navbar-light .navbar-nav .dropdown-menu {
                padding: 20px 25px;
                border: none; border-radius: 0;
                background-color: #0e6292; }

                .navbar-light .navbar-nav .dropdown-menu a {
                    padding: 4px 20px 4px 0;
                    font-size: 16px; line-height: 26px; font-weight: 300; color: #222; text-decoration: none;
                    background-color: transparent;
                    -webkit-transition: all .2s ease;
                            transition: all .2s ease;
                }
                .navbar-light .navbar-nav .dropdown-menu a:hover,
                .navbar-light .navbar-nav .dropdown-menu a:focus {
                    color: #222;
                }
                .navbar-light .navbar-nav .dropdown-menu a.active {
                    color: #222;
}
@media (max-width:1199px) {
    /* Fix: */
    .navbar-collapse {
        padding-top: 30px; padding-bottom: 20px;
        max-height: calc(100vh - 100px);
        overflow-y: auto;
    }
    
    .navbar-light .navbar-nav a.nav-link {
        display: inline-block;
        margin-bottom: 20px;
        font-size: 20px; line-height: 20px; }
    
        .navbar-light .navbar-nav .dropdown-menu {
            margin-bottom: 15px; }
    
            .navbar-light .navbar-nav .dropdown-menu a {
                padding: 8px 20px 5px 0;
                font-size: 19px; line-height: 29px;
            }
            .navbar-light .navbar-nav .dropdown-menu .dropdown-item {
                white-space: normal;
    }
}
@media (min-width: 768px) {
    .navbar-light .navbar-brand img {
        margin-top: 18px; margin-bottom: 18px;
        max-height: 85px;
    }
}
@media (min-width: 992px) {
    .navbar-light .navbar-brand img {
        max-height: 95px;
    }
}
@media (min-width:1200px) {
    .navbar-light .navbar-nav a.nav-link {
		margin-top: 60px; margin-left: 25px;
    }
    .navbar-light .navbar-nav a.nav-link[href*="termin-vereinbaren"] {
        margin-top: 45px;
        display: inline-block;
        padding: 15px 30px;
        border-radius: 9999px;
        background-color: #fff;
    }
    .navbar-light .navbar-nav a.nav-link.active[href*="termin-vereinbaren"] {
        color: #fff;
        background-color: #0e6292;
        border-bottom-color: transparent; }

        .navbar-light .navbar-nav .dropdown-menu {
            min-width: 270px; overflow: hidden;}

            .navbar-light .navbar-nav .dropdown-menu .dropdown-item {
                white-space: normal;
    }
}

/* slideIn */
@keyframes slideIn {
  0% {
    transform: translateY(1rem);
    opacity: 0;
  }
  100% {
    transform:translateY(0rem);
    opacity: 1;
  }
  0% {
    transform: translateY(1rem);
    opacity: 0;
  }
}
.slideIn {
    -webkit-animation-delay: 0.1s;
            animation-delay: 0.1s;
    -webkit-animation-duration: 0.35s;
            animation-duration: 0.35s;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    -webkit-animation-name: slideIn;
            animation-name: slideIn;
}


/* Telefon Mobile */
nav.navbar .telefon-icon {
	position: absolute; top: 15px; right: 65px; }

    nav.navbar .telefon-icon a i {
        padding-top: 3px;
        width: 35px; height: 35px;
        text-align: center;
        background-color: #0e6292;
        border-radius: 100%;
}
@media (min-width: 768px) {
    nav.navbar .telefon-icon {
	    top: 46px; right: 90px;
    }
}
@media (min-width: 992px) {
    nav.navbar .telefon-icon {
	    top: 50px;
    }
}

/* Telefon Desktop */
nav.navbar .telefon {
	position: absolute; top: 25px; right: 55px;
    font-size: 16px; line-height: 16px;
}

nav.navbar .telefon a.phone {
	margin-right: 30px;
}

nav.navbar .telefon i.bi {
    position: relative; top: -2px;
    margin-right: 6px;
    width: 23px; height: 23px;
    text-align: center;
    background-color: #0e6292;
    border-radius: 100%;
}
nav.navbar .telefon i.bi:before {
    vertical-align: -4px;
    width: 13px; height: 13px;
}


/* -----------------------------------------------------------------------------------
Header (Home & Unterseite)
----------------------------------------------------------------------------------- */
header.unterseite .image-container {
    position: relative;
}

header.unterseite.home .textbox {
    background-color: #fff; }

    header.unterseite.home .textbox h1 {
        margin-bottom: 15px;
        font-size: 26px; line-height: 36px; font-weight: 600;
}
@media (max-width: 767px) {
    header.unterseite {
        margin: 85px 0 60px 0; }

        header.unterseite .container-fluid {
            padding-left: 0; padding-right: 0; }
    
            header.unterseite.home .textbox {
                padding-top: 100px; padding-bottom: 40px;
    }
}
@media (min-width: 768px) {
    header.unterseite {
        margin-top: 150px; margin-bottom: 100px;
    }
    header.unterseite.home {
        padding-bottom: 100px;
        background: linear-gradient(to top, #e5e5e2 80%, transparent 0); }
    
        header.unterseite.home .textbox {
            padding-top: 120px; padding-bottom: 70px; }
    
            header.unterseite.home .textbox h1 {
                margin-bottom: 30px;
                font-size: 40px; line-height: 50px;
    }
}
@media (min-width: 992px) {
    header.unterseite.home .textbox {
        padding-top: 90px; padding-bottom: 70px;
    }
}
@media (min-width: 1200px) {
    header.unterseite.home .textbox h1 {
        font-size: 50px; line-height: 60px;
    }
}


/* Laufleiste */
.marquee {
    position: absolute; bottom: 0;
    --gap: 40px; /* Abstand zwischen Items */
    --duration: 10s; /* wird per JS dynamisch gesetzt */
    width: 100%;
    color: #fff;
    background-color: #0e6292; }

    .marquee__viewport {
        display: flex;
        flex-wrap: nowrap;
        width: 100%; overflow: hidden; }

        .marquee__group {
            display: inline-flex;
            margin-right: var(--gap); padding: 20px 0;
            align-items: center;
            gap: var(--gap);
            white-space: nowrap;
            will-change: transform;
            flex: 0 0 auto; /* <<< neu: nicht schrumpfen, nicht umbrechen */
            min-width: max-content; /* <<< hilft gegen seltenes Flex-Schrumpfen */
        }
        .marquee__group:last-child {
            margin-right: 0;
        }
        .marquee.is-ready .marquee__group {
            animation: marquee-scroll linear infinite;
            animation-duration: var(--duration); }

            .marquee__item {
                display: inline-block;
                white-space: nowrap; /* keine Mindesthöhe nötig */ }

                .marquee__item a {
                    color: #fff;
}

/* Keyframes: schiebt exakt um die Gruppenbreite + Gap */
@keyframes marquee-scroll {
    to { transform: translateX(calc(-100% - var(--gap))); }
}

/* Barrierearmut: Bewegungen respektieren */
@media (prefers-reduced-motion: reduce) {
  .marquee__group {
      animation: none !important;
    }
}
@media (max-width: 991px) {
    .marquee {
        bottom: -55px; }
    
        .marquee__group {
            padding: 15px 0;
    }
}
/* Optional: Pause bei Hover */
.marquee:hover .marquee__group {
    animation-play-state: paused;
}


/* -----------------------------------------------------------------------------------
Module: Foto + Text Boxen (2 Spalten)
----------------------------------------------------------------------------------- */
.module-foto-text-boxen-spalten {
    margin-bottom: 80px; }

    .module-foto-text-boxen-spalten figure {
        height: 100%;
        background-color: #fff; }

        .module-foto-text-boxen-spalten figure figcaption {
            padding-top: 40px; padding-bottom: 10px;
        }

        .module-foto-text-boxen-spalten .row [class*="col-"] {
            margin-bottom: 40px; }

            .module-foto-text-boxen-spalten .row [class*="col-"] a,
            .module-foto-text-boxen-spalten .row [class*="col-"] a:hover {
                text-decoration: none;
}                    


/* -----------------------------------------------------------------------------------
Module: Großes Foto + Text
----------------------------------------------------------------------------------- */
.module-foto-gross-text {
    margin-bottom: 90px; }

	.module-foto-gross-text img.img-fluid {
		margin-bottom: 30px;
	}
	.module-foto-gross-text .text-box {
        margin: 0 auto;
        max-width: 550px;
}


/* -----------------------------------------------------------------------------------
Module: Textabschnitt
----------------------------------------------------------------------------------- */
.textabschnitt {
    margin-bottom: 90px; }

    .textabschnitt img.img-fluid {
        margin-top: 5px; margin-bottom: 30px;
}

/* Einleitung */
.textabschnitt.einleitung {
    margin-bottom: 60px;
}


/* -----------------------------------------------------------------------------------
Impressionen
----------------------------------------------------------------------------------- */
.impressionen-container {
    margin-bottom: 140px; }

    /* Full-bleed, auch wenn Seite zentriert ist */
    .impressionen-carousel {
        width: 100vw;
        margin-left: 50%;
        transform: translateX(-50%); }

        /* Bilder passen sich flexibel an, keine Mindesthöhe */
        .impressionen-carousel .slide-img {
            width: 100%;
            height: auto;        /* Höhe wird durch Breite + Seitenverhältnis bestimmt */
            object-fit: cover;   /* schneidet nur, falls Bildformat abweicht */
            display: block;
}

.splide__arrow {
    opacity: 1;
}
.splide__arrow:hover:not(:disabled) {
    opacity: 1
}
.splide__arrow svg {
    fill: #0e6292;
}

.splide__pagination {
    bottom: 30px;
    padding: 0 1em; }

.splide__pagination__page {
    margin: 4px; padding: 0;
    width: 11px; height: 11px;
    opacity: 1;
    background: #fff; }

    .splide__pagination__page.is-active {
        background: #fff;
        transform: scale(1.4);
}
@media (max-width: 767px) {
    .splide__pagination {
        display: none;
    }
}


/* -----------------------------------------------------------------------------------
Image Hover Effect
----------------------------------------------------------------------------------- */
a.image-hover-effect,
a.image-hover-effect:hover {
    overflow: hidden;
    text-decoration: none;
    -webkit-transform: translateY(0);
            transform: translateY(0) }

    a.image-hover-effect .image-container,
    a.image-hover-effect .image-container img {
        position: relative;
        -webkit-transition: all .3s ease-in-out;
                transition: all .3s ease-in-out;
    }
    a.image-hover-effect .image-container {
        overflow: hidden;
    }
    a.image-hover-effect.inset-shadow .image-container:after {
        position: absolute; top: 0; right: 0; left: 0; bottom: 0;
        content: '';
        box-shadow: inset 0px 0px 60px rgba(44,45,47,0.2);}

        a.image-hover-effect .image-container img {
            display: block;
            margin: 0;
            width: 100%; height: auto; max-width: 100%;
            -webkit-transform: scale(1);
                    transform: scale(1)
        }
        a.image-hover-effect:hover .image-container img {
            -webkit-transform: scale(1.05);
                    transform: scale(1.05)
}


/* -----------------------------------------------------------------------------------
Kontakt
----------------------------------------------------------------------------------- */
.maps-kontakt-container {
    margin-bottom: 120px; padding-bottom: 20px;
    background-color: #fff; }

    .maps-kontakt-container .content-container {
        padding: 40px 20px;
}
@media (min-width: 768px) {
    .maps-kontakt-container .content-container {
        padding: 60px 40px;
    }
}




.maps-kontakt-container .image-box {
    position: relative;
}


    .maps-kontakt-container .image-box img.image {
		width: 100%; height: 100%;
		object-fit: cover;
    }


.maps-kontakt-container .image-box a.marker {
    position: absolute; top:50%; left: 50%; z-index: 1;
    display: block;
    margin: -40px 0 0 -18px;
    width: 36px; height: 36px;
    cursor: pointer;
}

.maps-kontakt-container .image-box .copyright {
    position: absolute; bottom: 15px; right: 15px; z-index: 1;
    padding: 5px 10px;
    font-size: 12px; line-height: 12px;
    background-color: #fff;
}







.error-message {
    margin-bottom: 30px; padding: 20px 25px;
    color: #222;
    background-color: #fbeaee;
    border: 1px solid #222;
}


fieldset {
    margin-bottom: 40px;
}

.form-group {
    margin-bottom: 20px; }

    .form-control,
    .has-success .form-control,
    .has-error .form-control {
        padding: 20px 20px 20px 25px;
        height: auto;
        font-size: 17px; line-height: normal; color: #222; font-weight: 300;
        background-color: #f3f3f1;
        border: 1px solid #f3f3f1;
        -webkit-box-shadow: none;
                box-shadow: none;
    }
    .form-control:focus,
    .has-success .form-control:focus,
    .has-error .form-control:focus {
        background-color: #f3f3f1;
        border-color: #222; 
        -webkit-box-shadow: none;
                box-shadow: none;
    }
    .form-control.has-error,
    .form-control.has-error:focus {
        background-color: #fbeaee;
        border-color: #222;
}

/* Custom Select */
.custom-select {
  position: relative;
  display: block;
  overflow: hidden;
}
/* Reset Select */
.custom-select select {
	-webkit-appearance: none;
	   -moz-appearance: none;
	    -ms-appearance: none;
	        appearance: none;
	cursor: pointer;
}
/* Arrow */
.custom-select::after {
	position: absolute; top: 20px; right: 20px;
	font-size: 10px;
	content: '\25BC';
	pointer-events: none;
}



.form-control::-webkit-input-placeholder {
  font-size: 17px; color: #222; font-weight: 300;
  opacity: 1;
}
.form-control::-moz-placeholder {
  font-size: 17px; color: #222; font-weight: 300;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  font-size: 17px; color: #222; font-weight: 300;
  opacity: 1;
}
.form-control::-ms-input-placeholder {
  font-size: 17px; color: #222; font-weight: 300;
  opacity: 1;
}
.form-control::placeholder {
  font-size: 17px; color: #222; font-weight: 300;
  opacity: 1;
}

.form-control.error::-webkit-input-placeholder {
  color: #d74846;
}
.form-control.error::-moz-placeholder {
  color: #d74846;
}
.form-control.error:-ms-input-placeholder {
  color: #d74846;
}
.form-control.error::-ms-input-placeholder {
  color: #d74846;
}
.form-control.error::placeholder {
  color: #d74846;
}

/* Nur für das Kirby Uniform Plugin notwendig */
.uniform__potty {
    position: absolute;
    left: -9999px;
}


/* -----------------------------------------------------------------------------------
Modal
----------------------------------------------------------------------------------- */
.modal-header {
    padding: 30px 30px 0 0;
    border: none;
}
.modal-body {
    padding-left: 20px; padding-right: 20px;
}
.modal-footer {
    padding-left: 20px; padding-right: 20px; padding-bottom: 30px;
    border: none;
}
@media (min-width: 768px) {
    .modal-body {
        padding-left: 40px; padding-right: 40px;
    }
    .modal-footer {
        padding-left: 40px; padding-right: 40px;
    } 
}

/* -----------------------------------------------------------------------------------
Footer
----------------------------------------------------------------------------------- */
footer {
    padding: 100px 0 70px 0;
    font-size: 16px; line-height: 27px; color: #fff;
    background-color: #0e6292; }

    footer a,
    footer a:hover {
        text-decoration: none; color: #fff;
    }
    footer .kontakt-spalten {
        margin-bottom: 40px; }

        footer .kontakt-spalten h3 {
            margin-bottom: 5px;
            font-size: 20px; line-height: 30px;
            color: #fff; font-weight: 600; opacity: 0.5;
        }
        footer .kontakt-spalten span {
            margin-bottom: 20px;
}
@media (max-width: 767px) {
    footer {
        text-align: center; }

        footer .content {
            margin-bottom: 40px;
        }
		footer .kontakt-spalten .rechte-spalte img {
			display: block;
			margin: 0 auto 60px auto;
			max-height: 70px; width: auto;
}
}
@media (min-width: 768px) {
    footer .content {
        margin-right: 20px;
    }
    footer .rechte-spalte {
        text-align: right; }
    
        footer .kontakt-spalten .rechte-spalte img {
            margin-right: 10px;
            max-height: 70px; width: auto;
    }
}
@media (min-width: 992px) {
    footer .content {
        margin-right: 40px;
    }
    footer .kontakt-spalten .rechte-spalte img {
        max-height: 80px; width: auto;
    }
}
@media (min-width: 1200px) {   
    footer .content {
        margin-right: 20px;
    }
}
@media (min-width: 1400px) {
    footer .content {
        margin-right: 50px;
    }
}

footer .abschlussleiste {
    text-align: center; }

    footer .abschlussleiste .social-icons {
        margin: 40px 0 30px 0; }

        footer .abschlussleiste .social-icons img.image {
            margin: 0 7px;
            width: 40px; height: 40px;
}


/* -----------------------------------------------------------------------------------
Fullscreen Lightbox v3.6.0 Pro
----------------------------------------------------------------------------------- */
.fslightbox-container{
    background: #fff !important;
}
.fslightbox-svg-path{
	fill: #000 !important;
}
.fslightbox-slide-number-container{
	color: #000 !important; display: none !important;
}
.fslightbox-slash{
	background: #000 !important;
}
.fslightbox-toolbar{
	background: rgba(255,255,255,.65) !important;
}
.fslightbox-slide-btn{
	background: rgba(35,35,35,.06) !important;
}
.fslightbox-toolbar-button:nth-child(1),
.fslightbox-toolbar-button:nth-child(2),
.fslightbox-toolbar-button:nth-child(3),
.fslightbox-toolbar-button:nth-child(4),
.fslightbox-toolbar-button:nth-child(5) {
	display: none !important;
}
.fslightboxc:after {
    background: none !important;
}
.fslightboxci {
    color: #000 !important;
    font-size: 16px !important;
}