/**
 * Mio Basic theme
 * 
 * @package mio-basic
 */

:root {
  --farbe1: #75a000;
  --farbe2: #0454a0;
}

/* Required WordPress CSS */

img[src$=".svg"] {
  width: auto;
}

.alignleft {
	display: inline;
	float: left;
	margin-right: 1.5em;
}
.alignright {
	display: inline;
	float: right;
	margin-left: 1.5em;
}

.aligncenter {
	display: block;
	margin: 0 auto;
}

/* WordPress gallery */

.gallery {
	margin: -7px;
	margin-bottom: 22px;
}
.gallery-item {
	position: relative;
	display: inline-block;
	padding: 7px;
	margin: 0;
	text-align: center;
	vertical-align: top;
	width: 100%;
}
.gallery-columns-2 .gallery-item {
	max-width: 50%;
}
.gallery-columns-3 .gallery-item {
	max-width: 33.33%;
}
.gallery-columns-4 .gallery-item {
	max-width: 25%;
}
.gallery-columns-5 .gallery-item {
	max-width: 20%;
}
.gallery-columns-6 .gallery-item {
	max-width: 16.66%;
}
.gallery-columns-7 .gallery-item {
	max-width: 14.28%;
}
.gallery-columns-8 .gallery-item {
	max-width: 12.5%;
}
.gallery-columns-9 .gallery-item {
	max-width: 11.11%;
}

.gallery-icon img {
	margin: 0 auto;
}
.gallery-caption {
	display: none; 
}


.wp-caption {
	max-width: 100%;
}
.wp-caption img[class*="wp-image-"] {
	display: block;
	margin: 0 auto;
}
.wp-caption-text {
	text-align: center;
}
.wp-caption .wp-caption-text {
	margin-top: .5rem;
}

/* General */

body {	
	color: #333;
	font-family: 'Lato', sans-serif;
	font-size: 1.3rem;
    line-height: 1.6;
	/* hyphens: none; */ 
}

.infopage {font-size: 1.1rem;}

@media(max-width:499px) {
    
    body {font-size: 1.2rem;}
	/* body */ .infopage {
		/* https://css-tricks.com/snippets/css/prevent-long-urls-from-breaking-out-of-container/ */
	  	overflow-wrap: break-word; /* These are technically the same, but use both */
	  	word-wrap: break-word;
	  	-ms-word-break: break-all;
	  	/* word-break: break-all; */ /* This is the dangerous one in WebKit, as it breaks things wherever. Instead use this non-standard one: */
	  	word-break: break-word;
	  	-ms-hyphens: auto; /* Adds a hyphen where the word breaks, if supported (No Blink) */
	  	-moz-hyphens: auto;
	  	-webkit-hyphens: auto;
	  	hyphens: auto;
	}
    .infopage {font-size: 1.0rem;}
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--farbe1);
	transition: color 500ms ease;	
    text-decoration: none;
}

a:hover, a:active, a:focus {
	color: var(--farbe2);
	text-decoration: none;
}

figure {position: relative; margin: 0; padding: 0;}
figcaption {font-size: 85%;}

h1, .h1 {
    font-weight: 900;
    color: #00325b;
    text-transform: uppercase;
    font-size: clamp(2rem, 4vw, 4.0rem);
    width: 1200px;
    max-width: 85%;
    margin-left: auto; margin-right: auto;
}

h1 span, .h1 span {color: #ccc;}


h1:after, .h1:after {
    content: "-";
    height: 0px;
    padding-top: 2vw;
    overflow: hidden;
    display: block;
    width: 320px; max-width: 80%;
    border-bottom: 5px solid #71aadc;
}

h1.text-center:after, .h1.text-center:after {
	margin-left: auto;
	margin-right: auto;
}

h2, .h2 {
    color: #2e78bc;
    text-transform: uppercase;
    font-weight: 900;
    font-size: clamp(1.5rem, 3vw, 3.375rem);
}

.text-white h2 {color: #fff !important;}


h3, .h3 {
    font-size: clamp(1.2rem, 1.2rem + 0.8vw, 1.8rem);
}

h4, .h4 {
    font-size: clamp(1rem, 1rem + 0.6vw, 1.4rem);
}

ul {/* padding-left: 1.5rem; */}

p:last-child { margin-bottom: 0;}

/* Multiused classes */

.btn {border-radius: 0;}

.btn.active.focus, .btn.active:focus,
.btn.focus, .btn:active.focus, 
.btn:active:focus, .btn:focus {
    outline:none !important;
    box-shadow:none !important;
}

.btn-primary {
	background: var(--farbe1);
	border-color: var(--farbe1);
    text-transform: uppercase;
}

.btn-primary:hover, .btn-primary:active, .btn-primary:focus {
	background: var(--farbe2) !important;
	border-color: var(--farbe2) !important;
}

.btn-outline-primary {
	color: var(--farbe2);
	border-color: var(--farbe2);
}

.btn-outline-primary:hover, .btn-outline-primary:active, .btn-outline-primary:focus {
	color: #fff !important;
	background: var(--farbe2) !important;
	border-color: var(--farbe2) !important;
}

.btn-burger {
    font-size: 2rem;
    padding: 0;
    color: var(--farbe1);
	position: relative;
	z-index: 999999;
}

.btn-burger:after {
	content: "" !important;
	display:none !important;
}

.btn-burger:hover {
    color: var(--farbe2);
}

.form-control {border-radius: 0;}

.bg-1 {background: var(--farbe1)}
.bg-2 {background: var(--farbe2)}
.bg-light {background: #ddd !important;}

.bg-image {background-position: center; background-size: cover;}
.bg-parallax {
    background-attachment: fixed;
    background-size: cover;
    background-position: center;
    will-change: transform;
}
.color-bg-image {position: relative}
.color-bg-image:before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.6);
}
.color-bg-image > div {position: relative; z-index:2}

.text-1 {color: var(--farbe1)}
.text-2 {color: var(--farbe2)}
.text-white a {color: inherit;}
.text-white a:hover {color: #bbb;}

.box {background: #f8f9fa;}
.bg-light .box, .bg-dark .box {background: #fff;}
.box > *:last-child {margin-bottom: 0;}

.zoom {overflow:hidden; position: relative; width: 100%; padding-top: 75%;}
.zoom img {position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
a:hover .zoom img {transform: scale(1.05);}

a.block {position: relative; display: block;}
a.inherit {color: inherit;}
a.inherit:hover {color: var(--farbe1);}

.compact {display: block; max-width:730px; margin-left: auto; margin-right: auto;}

.anker {display: block; width: 100%; height: 0px; overflow: hidden;  transform: translateY(-50px)}

.container .container {padding-left: 0; padding-right: 0;}

/* TinyMCE Custom Formats */

blockquote.blockquote {
	font-style: italic; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; 
	margin-bottom: 1rem; padding-top: 1rem; padding-bottom: 1rem; text-align: center;}

.author {font-size: 0.8rem; display: block;}

.wichtig {
	color: var(--farbe2);
}

.multicolumn {
    text-align: justify;
    column-gap: 2rem;
}

@media (min-width: 768px) {
    .multicolumn {
        column-count: 2;
    }
}

.intro {
    font-size: clamp(1.3rem, 1.3rem + 0.3vw, 1.8rem);
}

/* Header area */

.body-wrapper {position: relative; max-width: 2000px; margin-left: auto; margin-right: auto;}

header.header {position: absolute; top: 0; left: 0; width: 100%; z-index: 1050; aspect-ratio: 20 / 2;  }
.header-row {aspect-ratio: 20 / 1.5; }
.logo-special {position: absolute; bottom: 0; left: 0; }

@media(max-width:1200px) {
    header.header {aspect-ratio: auto; height: 20vw; max-height: 120px;}
    .header-row {height: 17.5vw; max-height: 100px; aspect-ratio: auto !important; }
    .logo-special {height: 17.5vw; max-height: 100px; width: auto !important; max-width:none !important; left: -10%;    }
}

.header-img img {width: 100%; display: block; height: 100vh; max-height: 100vw;
    object-fit: cover;
  /* mask: url(../img/panel.svg) bottom/contain no-repeat, linear-gradient(#000 0 0); /* we need this extra layer for mask-composite */
  /*mask-composite: exclude;*/
}

.header-image {position: relative;}

.panel {position: absolute; bottom: 0; width: 100%; z-index: 1060; height: auto !important;}

.scroll-down {
  position: absolute;
  bottom: 2.5vw;              /* Abstand vom unteren Rand */
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: 5vw;
  z-index: 3;
  text-decoration: none;
  z-index: 1070;
 
}

.scroll-down:hover {
  color: #71aadc;

}


.title {
	font-size: clamp(1.5rem, 1.5rem + 1.5vw, 3rem);
	display: inline-block;
}

.custom-logo {/* max-height: 4rem; width: auto;*/}

/* Overlay Navigation */

/* Btn open */
.overlay-open {
	position: fixed;
	bottom: 15px;
	left: 15px;
	font-size: 30px;
	background: rgba(200,200,200,0.5);
	border-radius: 5px;
	padding: 5px 15px;
}

/* Btn close */
.overlay-close {position: fixed; top: 1rem; right: 2rem; color: #fff !important;}

/*Overlay*/
.overlay-nav {
  opacity: 0;
  height: 100%;
  width: 0;
  position: fixed; 
  z-index: 9999999; 
  left: 0;
  top: 0;
  padding: 0;
  overflow-x: hidden; /* Disable horizontal scroll */
  /*overflow-y: hidden;*/
  transition: opacity 0.5s ease, width 0.5s ease;
}

/*Overlay Inner*/
.overlay-inner {
	background: var(--farbe2);
	min-height: 100%;
	position: relative;
	padding-top: 2rem;
}

/*Overlay Navigation*/
.overlay-nav ul {margin: 0; padding: 0; text-align: center;}
.overlay-nav ul li {display: block; list-style: none}
.overlay-nav ul li a {display: block; padding: 0.5rem 0 ; color: #fff ; font-size: 2rem;}



/* Main navigation */

.navbar {margin: 0; padding: 0; z-index: 999;}

ul.primary-nav {position: relative; z-index: 1070000000;}
ul.primary-nav a {display: block; padding: 0.8rem 0; color: #fff; text-transform: uppercase;  }
ul.primary-nav a:hover,
ul.primary-nav li.current-menu-item > a,
ul.primary-nav li.current_page_parent > a { /* .current-menu-ancestor */
	color: var(--farbe1);
}

ul.primary-nav ul {list-style: none; margin: 0; padding: 0;}


    ul.primary-nav ul {display:none; }
    
	ul.primary-nav > li {padding-left: 2rem; position: relative;}
	ul.primary-nav > li.menu-item-has-children > a:after { content: '\f0d7'; font-family: "Font Awesome 5 Free"; font-weight: 900; padding-left: 0.4rem; }
	ul.primary-nav > li:hover {}
	ul.primary-nav > li:hover ul {
		display: flex !important;
		flex-direction:column;
		position: absolute; 
		top: 100%; left: 2rem; 
		background: rgba(222,222,222,0.8);
		width: auto;
	}
	ul.primary-nav li:hover ul li {
		border-top: 1px solid #fff;
		padding: 0 1rem;
	}
	ul.primary-nav li:hover ul li a {
		white-space:nowrap;
	}


/* Header image and Slideshow area */

.header-img {
    width: 100%;
    max-width: 2000px;
    margin: auto;
    display: block;
    position: relative;
}

.header-img figure {
    position: relative;
}
/*.header-img a {
    position: absolute;
    display: block;
    top: 0;
    width: 100%;
    height: 100%;
    color: inherit;
}*/
.header-img figcaption {
    position: absolute;
    display: block;
    top: 0;
    width: 100%;
    height: 100%;
}
.header-img figcaption > div {
    max-width: 90%;
}
.header-img figure.color-text figcaption > div {
    background: #0454a0ee;
    color: #fff;
}
.header-img figure.color-image figcaption > div {
    color: #fff;
}
.header-img figure.color-image {
  position: relative;
}




.header-img figure.color-image .header-overlay {
  position: absolute;
  inset: 0;
  background: #002d55dd;    /* dein Blauton mit Transparenz */
  mix-blend-mode: multiply; /* Farbfilter-Effekt */
  pointer-events: none;
  z-index: 1;               /* über dem Bild */
}

.header-img figure.color-image figcaption {
  position: absolute;
  inset: 0;
  z-index: 2;               /* Text sicher über Overlay */
  display: flex;
  align-items: center;
  justify-content: center;
}



.header-img .headimg-title,
.header-img .headimg-description {
  color: #fff; line-height: 1.2;
}

.header-img .headimg-title,
.header-img .headimg-description {
  color: #fff;
}


.header-img .headimg-title {
    /*font-size: clamp(2rem, 2rem + 2vw, 4rem);*/
    font-weight: 900;
    text-transform: uppercase;
    font-size: clamp(3rem, 6vw, 6rem);
}
.header-img .headimg-description {
    font-weight: 900;
    text-transform: uppercase;
    font-size: clamp(2rem, 4vw, 4.0rem);
    padding-top: 3vw;
}

.header-compact {
    height: 25vh;
    object-fit: cover;
}

.hr-compact {
    margin: 0;
}

.owl-prev, .owl-next {
    position: absolute;
    left: 0.75vw;
    top: 50%;
    transform: translateY(-50%);
    font-size: 2rem;
    padding: 0 0.5rem;
    text-align: center;
    color: rgba(255, 255, 255, 0.8) !important;
}
.owl-next {
    left: auto;
    right: 0.75vw;
}

.owl-slideshow .owl-dots {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0.5rem;
    z-index: 9999;
}
.owl-slideshow .owl-dot {
    display: inline-block;
}
.owl-slideshow .owl-dot span {
    display: inline-block;
    margin: 0.25rem !important;
    background: rgba(255, 255, 255, 0.8);
    width: 0.8rem;
    height: 0.8rem;
}
.owl-slideshow .owl-dot.active span {
    background: var(--farbe1);
}

@media (max-width: 767px) {
    .owl-dots {
        display: none;
    }
}

.owl-thumbnail {
    width: auto;
    max-width: 60px; /* Anpassen nach Bedarf */
    height: auto;
    display: inline-block;
}


/*Breadcrumbs*/

.breadcrumbs {
	font-size: 0.9rem;
}

/*Pagination*/

.pagination {margin-bottom: 0;}

.page-link, .page-link:hover, .page-link:active, .page-link:focus {
    color: var(--farbe1);
}

.page-item.active .page-link {
    background-color: var(--farbe1);
    border-color: var(--farbe1);
}

/*Kacheln*/

.tiles-image {object-fit: cover;}

/*Sidebar*/

.sidebar ul {margin: 0; padding: 0;}
.sidebar ul li {margin: 0; padding: 0; display: block; border-top: 1px solid #ddd;}
li.current-cat {font-weight: 700;}
.sidebar ul li a {display: block; padding: 0.5rem 0;}
.sidebar .widget {margin-bottom: 1.5rem;}
.sidebar .widget:last-child {margin-bottom: 0;}

/*Calendar*/

.calendar {position: relative; padding-top: 1.2rem; color: #fff; }
.calendar:before {
	position: absolute;
	top: 0;
	content: '\f133'; font-family: "Font Awesome 5 Free"; font-weight: 900; 
	font-size: 3.5rem; line-height: 3.5rem;
	color: #ccc;
	z-index: 1;
}
.calendar * {position: relative; z-index: 2;}
.calendar-day {font-size: 1.4rem; line-height: 2.2rem; font-weight: bold; }
.calendar-month {/*font-size: 0.8rem; line-height: 1rem; text-transform: uppercase*/}

/* Shariff Socia Media Safe Sharing Tool */

.shariff {margin-left: -5px !important; margin-right: -5px !important;}

/* Responsive Video Block */

.video-block{ position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;margin-bottom: 2rem; }
.video-block iframe, .video-block object, .video-block embed, .video-block video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

.youtube-thumbnail img {width: 100%; height: auto;}

.youtube-thumbnail .thumbnail-wrapper {
    position: relative;
    display: block;
}

.youtube-thumbnail img {
    width: 100%;
    height: auto;
    display: block;
}

.youtube-thumbnail .play-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    text-align: center;
    width: 100%;
    pointer-events: none;
}

.youtube-thumbnail .play-overlay .btn {
    pointer-events: auto;
}

.youtube-thumbnail .youtube-hint {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0.6);
    color: #eee;
    font-size: 0.85rem;
    padding: 0.5rem 1rem;
    text-align: center;
    line-height: 1.4;
    z-index: 1;
}

.youtube-thumbnail .youtube-hint a {
    color: #fff;
    text-decoration: underline;
}

.youtube-thumbnail {
    margin-bottom: 2rem;
}



/* Contact Form 7 */

.wpcf7 .screen-reader-response {display: none}
.wpcf7 .wpcf7-not-valid-tip {padding-top: 0.5rem; font-size: 0.8rem; line-height: 0.9rem; color: #dc3545;}
.wpcf7 .wpcf7-response-output {margin: 0 !important; }
.wpcf7 .wpcf7-validation-errors {border: 1px solid #dc3545; padding: 1rem; background: #fff; font-size: 0.8rem;}
.wpcf7 .wpcf7-mail-sent-ok {border: 1px solid #28a745; padding: 1rem; background: #fff; font-size: 0.8rem;}

/* Colorbox */

#cboxTitle {display: block; position: absolute; bottom: 10px; left: 10px; right: 10px; top: auto;}
#cboxTitle span {display: block; padding: 0.5rem; background: rgba(0,0,0,0.6); color: #fff; text-align: center; font-size: 0.8rem;}

/*Back to Top Button*/

.back-to-top {
	position: fixed;
	bottom: 15px;
	right: 15px;
	font-size: 30px;
	background: rgba(200,200,200,0.5);
	border-radius: 5px;
	padding: 5px 15px;
}

.back-to-top-alt {
	font-size: 30px;
}

/* Google Maps Wrapper */

.awmp_map_wrapper {
	border-width: 0 !important;
}

/* Borlabs Google Maps Vorschau */

.brlbs-cmpnt-content-blocker {
height: 70vh !important;
width: 100%;
}

/* Footer */

body > footer h2 {font-size: 1.2rem; text-transform: uppercase; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid #fff;}
body > footer ul {margin: 0; padding: 0; list-style: none;}
body > footer ul li {margin: 0; padding: 0; display: block;}

@media(max-width: 1199px) {
	body > footer .row {margin-bottom: -1rem;}
	body > footer .row > div {margin-bottom: 1rem;}
}

/* Admin Bar */

@media(max-width: 991px) {
#wpadminbar {overflow: hidden;}
}

/* Google Web Fonts */

/* https://gwfh.mranftl.com/fonts */

/* lato-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: 'Lato';
  font-style: normal;
  font-weight: 400;
  src: url('../webfonts/lato-v23-latin-regular.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
       url('../webfonts/lato-v23-latin-regular.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* lato-italic - 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: 'Lato';
  font-style: italic;
  font-weight: 400;
  src: url('../webfonts/lato-v23-latin-italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
       url('../webfonts/lato-v23-latin-italic.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* lato-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: 'Lato';
  font-style: normal;
  font-weight: 700;
  src: url('../webfonts/lato-v23-latin-700.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
       url('../webfonts/lato-v23-latin-700.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* lato-700italic - 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: 'Lato';
  font-style: italic;
  font-weight: 700;
  src: url('../webfonts/lato-v23-latin-700italic.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
       url('../webfonts/lato-v23-latin-700italic.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}


/* lato-900 - 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: 'Lato';
  font-style: normal;
  font-weight: 900;
  src: url('../webfonts/lato-v24-latin-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* lato-900italic - 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: 'Lato';
  font-style: italic;
  font-weight: 900;
  src: url('../webfonts/lato-v24-latin-900italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}