/***************************************************************************************************
*** Typo
***************************************************************************************************/

@font-face { font-family: 'PTSans'; src: url('../fonts/pt-sans-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'PTSans'; src: url('../fonts/pt-sans-bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'PTSans Narrow'; src: url('../fonts/pt-sans-narrow-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'PTSans Narrow'; src: url('../fonts/pt-sans-narrow-bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }

/***************************************************************************************************
*** General Styles
***************************************************************************************************/

a[type=button] { -webkit-appearance: none; }

::selection {
  background: var(--bs-primary);
  color: rgb(255, 255, 255);
  text-shadow: none;
}

:active,
:focus {
  outline: none !important;
}

input::placeholder { font-size: 1.5rem; }

html,
body {
  margin: 0;
  padding: 0;
  width: 100%;
}

html {
  overflow-y: scroll;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -webkit-tap-highlight-color: var(--bs-primary);
}

body {
  position: relative;
  height: 100%;
  line-height: 1.5;
  -ms-word-wrap: break-word;
  word-wrap: break-word;
}

main { margin-top: 122px; }
@media(min-width: 992px){ main { margin-top: 152px; }}

a {
  transition: all 0.2s ease;
}

hr {
  height: 1px !important;
  color: var(--bs-primary);
  opacity: 1;
  width: 100%;
  margin: 3rem auto 0;
}

@media screen and (prefers-reduced-motion: reduce) {
  a {
    transition: none;
  }
}

* p:last-child { margin-bottom: 0; }

/*** Bootstrap Dropdown-Caret ändern */
.dropdown-toggle::after {
  vertical-align: top;
  content: "\25BE";
  border: none;
  font-family: 'PTSans';
  margin: 0 0 0 0.25rem;
  line-height: 0;
  vertical-align: unset;
}

/*** margin-Korrektur bei vorhandener Subline */
.headline + .subline { margin-top: -2rem; }

/***************************************************************************************************
*** Section
***************************************************************************************************/
section { padding: 6rem 0; }
.ptzero { padding-top: 0 !important; }
.ptsm { padding-top: 3rem !important; }
.ptxl { padding-top: 9rem !important; }
.pbzero { padding-bottom: 0 !important; }
.pbsm { padding-bottom: 3rem !important; }
.pbxl { padding-bottom: 9rem !important; }
.mtzero { margin-top: 0 !important; }
.mtsm { margin-top: 3rem !important; }
.mtxl { margin-top: 9rem !important; }
.mbzero { margin-bottom: 0 !important; }
.mbsm { margin-bottom: 3rem !important; }
.mbxl { margin-bottom: 9rem !important; }

/***************************************************************************************************
*** Farbwechsel (light/dark)
***************************************************************************************************/
.bg-primary *:not(#osm_map *) { color: rgb(255, 255, 255); }

/***************************************************************************************************
*** Navigation
***************************************************************************************************/
.topbar { transition: 0.3s; height: 16px; }
.topbar .container { transition: 0.3s; visibility: visible; opacity: 1; transition: visibility 0.3s, opacity 0.3s linear;}
nav#main-menu .main-menu-toggler { width: 50px; height: 50px; border: 0; border-radius: 0; font-size: 1.25rem; background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkViZW5lXzEiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iCgkgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIgoJIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojMDA0ODY5O30KCS5zdDF7c3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjI5Ljc5ODQ7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS1taXRlcmxpbWl0OjEwMi40O30KPC9zdHlsZT4KPHJlY3QgY2xhc3M9InN0MCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiLz4KPHBhdGggY2xhc3M9InN0MSIgZD0iTTEwOC41LDE3NC4xaDI5NSBNMTA4LjUsMjU2aDI5NSBNMTA4LjUsMzM3LjloMjk1Ii8+Cjwvc3ZnPgo="); background-repeat: no-repeat; margin-right: 0.75rem; }
nav#main-menu .nav-links a { text-transform: uppercase; }
nav#main-menu .nav-links a:hover { color: var(--bs-primary); }
nav#main-menu .site-logo img { transition: 0.3s; }
/*
.header-scrolled .topbar { margin-top: -1rem; }
@media(min-width: 992px){
  .header-scrolled .topbar { margin-top: -3rem; }
}
*/

.header-scrolled .topbar { height: 0px; padding: 0 !important; }
@media(min-width: 992px){
  .topbar { height: 46px; }
  .header-scrolled .topbar .container { visibility: hidden; opacity: 0; transition: visibility 0.3s, opacity 0.3s linear; }
}



/*
@media(min-width: 1200px) {
  nav#main-menu .site-logo { position: absolute; top: 0; }
}
@media(min-width: 576px) {
  nav#main-menu .site-logo img { max-width: 350px; }
}
@media(min-width: 1200px) {
  nav#main-menu .site-logo img { width: 400px; max-width: 400px; height: auto; }
}
@media(min-width: 1400px) {
  nav#main-menu .site-logo img { width: 450px; max-width: 450px; }
}
@media(min-width: 992px) { .header-scrolled .topbar { margin-top: -4.5rem; }}
.header-scrolled nav#main-menu .site-logo { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
.header-scrolled nav#main-menu .site-logo img { width: 150px; max-width: 150px; height: auto; }
*/
/***************************************************************************************************
*** Navigation (mobil)
***************************************************************************************************/

.mm-menu { --mm-color-background: var(--bs-primary); --mm-color-text: rgb(255, 255, 255); --mm-color-button: rgb(255, 255, 255); --mm-color-text-dimmed: rgb(255, 255, 255); --mm-color-border: rgba(255, 255, 255, 0.5); }

.mm-navbar a.mobile-logo { background-color: rgb(255, 255, 255); }

/*** Aufflackern der Mobile-Navigation beim Pageload vermeiden... ***/
#mobile-menu:not(.mm-menu) { display: none; }
/*** Title ausblenden ***/
#mobile-menu .mm-navbars_top .mm-navbar:last-child { display: none; }

.mm-navbar__title>span {
  overflow: visible !important;
  margin-top: 5px;
  letter-spacing: 0;
}

/* Geöffnetes Menü => Abdunkeln Wert überschreiben */
.mm-wrapper_opening [class*=mm-menu_pagedim].mm-menu_opened~.mm-wrapper__blocker {
  opacity: 0.8;
}

/* Geöffnete Submenüs => Styling */
#mm-2,
#mm-3 {
  background: #ede7e7;
  padding: 0 0 0 10px;
}

#mm-2 a,
#mm-3 a {
  color: rgb(77, 19, 15);
}

#mm-2 .mm-listitem__text,
#mm-3 .mm-listitem__text {
  padding: 5px 20px 5px 20px;
}

/***************************************************************************************************
*** Topbar
***************************************************************************************************/
header .topbar a { color: rgb(255, 255, 255); text-decoration: none; }
header .topbar .info { font-size: 0.875rem; line-height: 1.1; height: 30px; }

/***************************************************************************************************
*** Slider
***************************************************************************************************/

#slider .typo { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; width: 90%; padding: 1.5rem 3rem; background-color: rgba(var(--bs-primary-rgb), 0.5);  max-width: 1320px; color: rgb(255, 255, 255); }
#slider .typo h1 { font-weight: bold; color: rgb(255, 255, 255); text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2); margin: 0; padding: 0; }
@media(max-width: 576px) { #slider .typo h1 { font-size: calc(1.1625rem + 2.55vw) }}
@media(min-width: 576px) { #slider .typo { width: 70%; }}
@media(min-width: 768px) { #slider .typo { width: fit-content; }}
/* Slider (Arrows) */
#slider .owl-next, #slider .owl-prev { position: absolute; top: 50%; transform: translateY(-50%); font-size: 5vw; color: rgba(255, 255, 255, 0.5); z-index: 100; }
#slider .owl-next:hover, #slider .owl-prev:hover { color: rgba(var(--bs-secondary-rgb), 1); }
#slider .owl-next { right: 10px; }
#slider .owl-prev { left: 10px; }
/* Slider (Dots) */
.owl-carousel .owl-dots { position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%); padding: 0px; z-index: 70; opacity: 0.5; }
.owl-carousel .owl-dots:hover { opacity: 1; }
.owl-carousel button.owl-dot { width: 50px; height: 5px; margin-left: 5px; margin-right: 5px; background: transparent; border: 1px solid rgb(255, 255, 255); }
.owl-carousel button.owl-dot.active { background: rgb(255, 255, 255); }
@media(min-width: 992px) { .owl-carousel button.owl-dot { height: 0.5rem; }}

/***************************************************************************************************
*** Editor (plus 3x Teaser)
***************************************************************************************************/
.editor-triple-teaser .teaserbox { margin: 0 0.5rem; padding: 1rem 1.5rem; background-color: var(--bs-secondary); box-shadow: 4px 4px rgb(0, 0, 0); }
.editor-triple-teaser.bg-primary .teaserbox * { color: rgb(0, 0, 0) !important; }
.editor-triple-teaser.bg-secondary .teaserbox { background-color: rgb(255, 255, 255); }
.editor-triple-teaser i.bi { font-size: 2.5rem; }

/***************************************************************************************************
*** Iconboxen
***************************************************************************************************/
.iconboxes .iconbox { margin: 0 0.5rem; padding: 1.5rem 1.5rem 1rem; background-color: var(--bs-secondary); box-shadow: 4px 4px rgb(0, 0, 0); }
.iconboxes.bg-primary .iconbox.bg-primary { background-color: rgb(255, 255, 255) !important; }

.iconboxes.bg-primary .iconbox * { color: rgb(0, 0, 0) !important; }
.iconboxes.bg-secondary .iconbox { background-color: rgb(255, 255, 255); }
.iconboxes i.bi { font-size: 2.5rem; }

/***************************************************************************************************
*** Formulare
***************************************************************************************************/
#rex-yform label, #rex-yform button { margin-top: 1rem; }
#rex-yform ::placeholder { color: rgba(0, 0, 0, 0.2); font-size: 1.25rem;}
#rex-yform .alert-danger ul { list-style-type: none; margin-bottom: 0; }
#rex-yform .alert-danger ul li { margin-bottom: 1rem; font-weight: bold; }
#rex-yform .alert-danger ul li:last-child { margin-bottom: 0; }

/***************************************************************************************************
*** Open Street Maps
***************************************************************************************************/


/***************************************************************************************************
*** Footer
***************************************************************************************************/
footer .footer-link a { color: rgb(255, 255, 255); text-decoration: none; }
footer .footer-link a:hover { color: rgba(255, 255, 255, 0.75); }
footer .footer-link:not(footer .footer-link:last-child)::after { content: '•' }
footer .bg-primary { font-size: 0.875rem; }