/* inter-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: 'Inter';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/inter-v20-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-600 - 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: 'Inter';
	font-style: normal;
	font-weight: 600;
	src: url('../fonts/inter-v20-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-800 - 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: 'Inter';
	font-style: normal;
	font-weight: 800;
	src: url('../fonts/inter-v20-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* mulish-200 - 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: 'Mulish';
	font-style: normal;
	font-weight: 200;
	src: url('../fonts/mulish-v18-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* mulish-300 - 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: 'Mulish';
	font-style: normal;
	font-weight: 300;
	src: url('../fonts/mulish-v18-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* mulish-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: 'Mulish';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/mulish-v18-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* mulish-500 - 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: 'Mulish';
	font-style: normal;
	font-weight: 500;
	src: url('../fonts/mulish-v18-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* mulish-600 - 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: 'Mulish';
	font-style: normal;
	font-weight: 600;
	src: url('../fonts/mulish-v18-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* mulish-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: 'Mulish';
	font-style: normal;
	font-weight: 700;
	src: url('../fonts/mulish-v18-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* mulish-800 - 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: 'Mulish';
	font-style: normal;
	font-weight: 800;
	src: url('../fonts/mulish-v18-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}details,main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:0.35em 0.75em 0.625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}
/*START*/
html {
	overflow-y: scroll;
	-webkit-text-size-adjust: none;
	-webkit-font-smoothing: antialiased;
	font-size: 20px;
	scroll-behavior: smooth;
}
*, *:before, *:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
/**/
/* ======================================================= */
:root {
  /* BASES (nur die R, G, B Werte, kein rgb()!) */
  --weiss-base: 255, 255, 255;
  --rot-base: 186, 35, 38;
  --dunkel-base: 10, 8, 40;
  --tiefblau-base: 0, 20, 70;
  --gruen-base: 5, 90, 93;
  --turkis-base: 45, 110, 130;
  --blau-base: 13, 122, 179;
  --hellblau-base: 120, 175, 239;
  --babyblau-base: 181, 244, 251;
  --sand-base: 235, 230, 220;
  --milch-base: 245, 243, 238;

  --weiss: rgb(var(--weiss-base));
  --rot: rgb(var(--rot-base));
  --dunkel: rgb(var(--dunkel-base));
  --tiefblau: rgb(var(--tiefblau-base));
  --gruen: rgb(var(--gruen-base));
  --turkis: rgb(var(--turkis-base));
  --blau: rgb(var(--blau-base));
  --hellblau: rgb(var(--hellblau-base));
  --babyblau: rgb(var(--babyblau-base));
  --sand: rgb(var(--sand-base));
  --milch: rgb(var(--milch-base));  
  --main: var(--dunkel);
  
  --btn-text-hell: var(--milch); 
  --btn-text-dunkel: var(--dunkel);
  --akzent-farbe: var(--blau);
}
/* --- Schriftfarben --- */
.weiss { color: var(--weiss); }
.rot { color: var(--rot); }
.dunkel { color: var(--dunkel); }
.tiefblau {	color: var(--tiefblau); }
.gruen { color: var(--gruen); }
.turkis { color: var(--turkis); }
.blau { color: var(--blau); }
.hellblau { color: var(--hellblau); }
.babyblau { color: var(--babyblau); }
.sand { color: var(--sand); }
.milch { color: var(--milch); }

.bg-weiss { background-color: var(--weiss); color: var(--dunkel); }
.bg-dunkel { background-color: var(--dunkel); color: var(--weiss); }
.bg-tiefblau { background-color: var(--tiefblau); color: var(--weiss); }
.bg-gruen { background-color: var(--gruen); color: var(--sand); }
.bg-turkis { background-color: var(--turkis); color: var(--weiss); }
.bg-blau { background-color: var(--blau); color: var(--weiss); }
.bg-hellblau { background-color: var(--hellblau); color: var(--dunkel); }
.bg-babyblau { background-color: var(--babyblau); color: var(--dunkel); }
.bg-sand { background-color: var(--sand); color: var(--tiefblau) ; --lokaler-hintergrund: var(--sand);}
.bg-milch { background-color: var(--milch); color: var(--dunkel); --lokaler-hintergrund: var(--milch);}

.akzent-blau { --akzent-farbe: var(--blau); }
.akzent-turkis { --akzent-farbe: var(--turkis); }
.akzent-gruen { --akzent-farbe: var(--gruen); }
.akzent-tiefblau { --akzent-farbe: var(--tiefblau); }
.akzent-rot { --akzent-farbe: var(--rot); }

.akzent-blau h1, .akzent-blau h2 { color: var(--akzent-farbe); }
.akzent-turkis h1, .akzent-turkis h2 { color: var(--akzent-farbe); }
.akzent-gruen h1, .akzent-gruen h2 { color: var(--akzent-farbe); }
.akzent-tiefblau h1, .akzent-tiefblau h2 { color: var(--akzent-farbe); }
.akzent-rot h1, .akzent-rot h2 { color: var(--akzent-farbe); }
/*--------------------------------------------------------------------------------------------------------------*/
body {
	margin: 0;
	padding: 0;
	color: var(--dunkel);
	font: normal 1em/1.25em 'Mulish', sans-serif;
	background-color: var(--milch);
}
table, td {
	border: 0px;
	margin: 0 auto;
	padding: 0px;
	vertical-align: top;
	border-collapse: collapse;
	border-spacing: 0px;
}
iframe {
	border: 0px;
	margin: 0px;
	padding: 0px;
}
img {
	display: inline-block;
	border: 0;
	margin: 0;
	padding: 0;
	vertical-align: top;
}
a {color: inherit;
	outline: none;}
a:not(:has(img)) {
	
	background-image: linear-gradient(#fff, #fff);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 100%; 
    transition: background-size 0.3s ease, color 0.3s ease;
    
}
a:hover, a:focus { color: var(--rot);}
a:not(nav a):not(.navi-quick a):hover, a:not(nav a):not(.navi-quick a):focus {
background-size: 100% 100%;
	box-decoration-break: clone;
    -webkit-box-decoration-break: clone;}
	
p a {padding: 0 4px;
    margin: 0 -4px;
	border-radius:2px 3px;}	
	
strong { font-weight: 800;}
/*-------------------------------------------------------------------------------------------------------------------------*/
* {
	transition: all 0.1s;
	-moz-transition: all 0.1s;
	-webkit-transition: all 0.1s;
}
header, .bild, .content, footer, nav, section, main {
	position: relative;
	margin: 0 auto;
	width: 100%;
}
header {
	position: relative;
	left: 0;
	right: 0;
	top: 0;
	padding: 0;
	backdrop-filter: blur(7px);
	background-color: rgba(var(--dunkel-base), 0.95); 
    color: var(--weiss);
	z-index: 499;
}
.sticky header {
	position: fixed;
	background-color: rgba(8,10,40,0.85);
}
/* The progress bar */
.progress-container {
	position: fixed;
	left: 0;
	right: 0;
	width: 100%;
	height: 4px;
	background: #ccc;
	z-index: 500;
}
.progress-bar {
	height: 4px;
	background-color: var(--turkis);
	width: 0%;
	z-index: 50;
}
/*------------------------------------------------------------------------------------------------------------------*/
.logo {
	position: fixed;
	left: 8px;
	top: 8px;
	width: 120px;
	z-index: 2000;
}
.logo img {
	width: 100%;
	height: auto;
}
a[title="Taucher.Net"] img {
	background-image: url(../images/taucher.png);
	background-size: cover;
}
a[title="Taucher.Net"]:hover img {
	background-image: url(../images/taucher-hover.png);
}
/*-------------------------------------------------------------------------------------------------------------------------*/
/* ========================================================================== */
.bild {
	position: relative;
	top: 0;
	text-align: center;
	margin: 0 auto;
	background: var(--dunkel) url(../images/loading.gif) no-repeat center center;
	z-index: 1;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bild:before { 
    content: ''; 
    background: linear-gradient(to bottom, rgba(var(--dunkel-base), 1.0), rgba(var(--dunkel-base), 0));
    height: 11.25vw; 
    position: absolute; 
    left: 0; right: 0; top: 0;
    z-index: 1;
}

.bild::after {
    content: "";
    position: absolute;
    bottom: 0; left: 0; width: 100%; height: 5vw;      
    background-image: url('../images/wave-top-dunkel.svg'); 
    background-size: cover; background-repeat: no-repeat; background-position: top;      
    z-index: 10;
	pointer-events: none;
}

/* Wellen-Varianten */
.bild.bild-blau::after { background-image: url('../images/wave-top-blau.svg'); }
.bild.bild-gruen::after { background-image: url('../images/wave-top-gruen.svg'); }
.bild.bild-tiefblau::after { background-image: url('../images/wave-top-tiefblau.svg'); }
.bild.bild-sand::after { background-image: url('../images/wave-top-sand.svg'); }
.bild.bild-milch::after { background-image: url('../images/wave-top-milch.svg'); }
.bild.bild-turkis::after { background-image: url('../images/wave-top-turkis.svg'); }

.bild img { width: 100%; height: auto; }

@media (orientation: landscape) { .bild { height: 85vh; } }
@media (orientation: portrait) { .bild { height: 97vh; } }
.bild-halb {
	max-height: 760px !important;
}

.bild video {
	position: absolute;
	z-index: -1;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	transition: object-position 0.5s ease-in-out;
}

@media (max-width: 768px) and (orientation: portrait) {
    .bild video { object-position: 75% center; }
}

/* ========================================================================== */
.hero {
	position: relative;
	max-width: 1200px;
	padding: 1rem;
	z-index: 3;
	text-align: center !important;
	animation: heroMoveDown 7s ease-in-out forwards;
	opacity: 0;
pointer-events: auto;}

.hero p {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 1.5rem;
    text-shadow: 2px 2px 6px rgba(0,0,0,0.6);
    animation: textFadeOut 11s ease-in-out forwards;
}

.hero ul {
    list-style: none; padding: 0; margin: 0;
    display: flex; justify-content: center; flex-flow: row wrap; gap: 2vw;
}

.hero ul li a {
    display: inline-block;
    padding: 0.5rem 0.75rem;
    background-color: var(--turkis);
    border: 2px solid var(--turkis);
    color: var(--babyblau);
    text-decoration: none;
    border-radius: 0.5rem;
    font-weight: 600;
    transition: all 0.2s ease;
}

.hero ul li a:hover { background: #111; color: #fff; transform: translateY(-2px); }

@keyframes heroMoveDown {
    0% { opacity: 0; transform: translateY(0); }
    9%, 55% { opacity: 1; transform: translateY(0); } 
    100% { opacity: 1; transform: translateY(18vh); }
}

@keyframes textFadeOut {
    0%, 55% { opacity: 1; visibility: visible; }
    100% { opacity: 0; visibility: hidden; }
}

/* Scroll-Pfeil */
.hero::after {
    content: '\f078'; font-family: 'FontAwesome'; font-size: 1.5rem;
    color: rgba(255,255,255,0.75); position: absolute;
    bottom: -25px; left: 50%; transform: translateX(-50%);
    opacity: 0; z-index: 5;
    animation: fadeInScrollArrow 1s forwards 3s, pulseScrollArrow 1.2s infinite 3s;
}

@keyframes fadeInScrollArrow { to { opacity: 1; } }
@keyframes pulseScrollArrow {
    0%, 100% { transform: translate(-50%, 0); } 
    50% { transform: translate(-50%, -4px); } 
}

/* ========================================================================== */
.minislider { margin: 0 auto; }

.minislider .owl-stage-outer { padding: calc(0.75rem + 0.75vw + 0.75vh) 0; }

.minislider .item {
    text-align: center; background-color: #fff;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    height: 100%; padding-bottom: 1.5rem;
    transition: all 0.3s ease;
}

.minislider .item:hover { box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform: scale(1.05); }

.minislider .item a { display: block; text-decoration: none; color: #444; height: 100%; }

.minislider .item h3 { color: var(--blau); font-size: 1.5rem; margin-top: 1rem; }

.minislider .item p { padding: 0 1.5rem; margin-top: 0.5rem; margin-bottom: 0.5rem; text-align: left; }

.minislider .details {
    position: relative; display: inline-block;
    padding: 0.5em 1.5em 0.5em 0.75em;
    background-color: var(--blau); border: 2px solid var(--blau);
    color: var(--milch); text-decoration: none; border-radius: 0.5rem;
    font-weight: 600; font-size: 1.25em; transition: all 0.2s ease;
}

.minislider .details:hover { background-color: var(--milch); color: var(--blau); }

/* Globale Owl Navigation (für Minislider) */
.owl-nav {
    font-size: 2em; position: absolute; z-index: 10;
    top: 50%; left: 0; right: 0; width: 100%;
    color: var(--tiefblau); transform: translateY(-50%);
    text-shadow: 0 0 10px #fff;
}

.owl-prev { float: left; margin-left: -2rem; }
.owl-next { float: right; margin-right: -2rem; }

.owl-theme .owl-dots .owl-dot.active span { background: var(--tiefblau) !important; transform: scale(1.4); opacity: 1; }
/*-----------------------------------------------------------------*/
.wellen {
	left: 0;
	right: 0;
	width: 100%;
	height: auto;
	z-index: 3;
	position: absolute;
}
/*---------------------------------------------------------------------*/
.container {
	padding: calc(1rem + 0.75vw + 0.75vh) 0;
}
.content {
	padding: 1.25rem;
	padding: calc(1em + 0.75vw + 0.75vh);
	position: relative;
	margin: 0 auto;
}

.youtubeframe {
	position: absolute;
	top: 0.5em;
	left: 0.5em;
	bottom: 20.5em;
	right: 0.5em;
	width: calc(100% - 1em);
	height: calc(100% - 1em);
}
/*---------------------------------------------------------------------*/
details {
	border: 1px solid #ccc;
	margin: auto;
	margin-bottom: 10px;
	border-radius: 4px;
	max-width: 1280px;
}
summary {
	list-style: none;
	position: relative;
	cursor: pointer;
	padding: 10px 40px 10px 15px;
	background-color: transparent;
	font-weight: 600;
	background-color: rgba(8,10,40,0.125);
}
summary::-webkit-details-marker {
 display: none;
}
summary::before {
	content: '+';
	font-weight: bold;
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	transition: transform 0.2s, content 0.2s;
}
details[open] summary {
	border-bottom: 1px solid #ccc;
}
details[open] summary::before {
	content: '-';
}
.accordion-content {
	padding: 3vw;
	background-color: rgba(8,10,40,0.25);
}
.bg-sand .accordion-content {background-color: rgba(255,255,255,0.25);}
.accordion-content ul {
	list-style: disc;
	padding-left: 1.5rem;
	margin-top: 1em;
}
.accordion-content ul li {
	margin-bottom: 0.5em;
	line-height: 1.4em;
}
/*----------------------------*/
.linien {
	text-align: right;
	color: var(--gruen);
	font-size: 10vw;
}
.line4 {
	font-size: 1.25em;
	color: var(--gruen);
	padding-right: 1.5em;
}
.line3 {
	font-size: 1.125em;
	color: var(--turkis);
	padding-right: 1.25em;
}
.line2 {
	font-size: 1em;
	color: var(--blau);
	padding-right: 1em;
}
.line1 {
	font-size: 0.875em;
	color: var(--hellblau);
	padding-right: 0.75em;
}
/*----------------------------------------------------------------*/
@keyframes pulse {
	 0% {
	 transform: translateY(-4px);
	}
	 50% {
	 transform: translateY(4px);
	}
	 100% {
	 transform: translateY(-4px);
	}
}
.pulse {
	animation: pulse 2s infinite;
}
/*--------------------------------------------------------------------------*/
.checkliste {
    list-style: none; 
    padding: 0;
    margin: 2rem 0;
}

.checkliste li {
    position: relative;
    padding-left: 35px;
    margin-bottom: 1.2rem;
    line-height: 1.5;
}

.checkliste li::before {
    content: '✓'; 
    position: absolute;
    left: 0;
    top: 0;
    /*color: var(--milch); */
    font-weight: bold;
    font-size: 1.2rem;
}
/*----------------------------------------------------------------------------------------*/
.usp-section {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    padding: 60px 5%; 
    text-align: center;
}

.usp-item {
	flex: 1;
	min-width: 220px;
	max-width: 280px;
	background: rgba(255, 255, 255, 0.1);
	padding: 30px 20px;
	border-radius: 12px;
	transition: all 0.3s ease;
	border: 1px solid rgba(255, 255, 255, 0.2);
	box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}


.icon-circle {
    width: 60px;
    height: 60px;
    background: var(--gruen); 
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    margin: 0 auto 20px;
}

.usp-item h3 {
    font-size: 1.1rem;
    color: #fff;
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.usp-item p {
	font-size: 0.9rem;
	line-height: 1.4;
	margin: 0;
	opacity: 0.95;
}

/*-------------------------------------------------------------------------------------------------*/
footer {
	position: relative;
	padding: 1rem 1rem 5rem;
	margin: 0 auto;
	text-align: left;
	background-color: var(--tiefblau);
	color: rgb(255,255,255);
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
}
footer > div {
	padding: 3vw;
	flex: 1 1 auto;
	text-align: left;
}
.footernav ul {
	list-style: none;
	padding: 0;
	margin: 0 0 0 -8px;
}
.footernav ul ul {
	padding-left: 1rem;
}

.footernav a {
	padding: 4px 8px;
	display: inline-block;
	text-decoration: none;
	position: relative;
}
.footernav a.aktiv {
	text-decoration: underline;
	background-color: rgba(255,255,255,0.1);
}
.footernav a:hover, .footernav a:focus {
	text-decoration: underline;
	background-color: #fff;
	color: var(--gruen);
}
/*---*/
.footernav-legal {
	flex: 1 1 100%; 
	text-align: center; 
	margin-top: 1rem; 
	padding-bottom: 0; 
}
.footernav-legal p {
	font-size: 0.9em; 
}
/*-------------------------------------------------------------------------------------------------------------------------*/
p, h1, h2, h3, h4, h5, h6, main ul li {
	margin: 1em 0 1em 0;
	font-size: 1em;
	font-weight: normal;
	line-height: 1.25em;
}
h1, .h1 {
	font-family: 'Inter', sans-serif;
	text-transform: uppercase;
	}
h1, .h1 {font-weight: 800; font-size: clamp(1.5rem, calc(2.6vw + 0.525rem), 2.85rem);}
h2, .h2 {font-weight: 800; font-size: clamp(1.5rem, calc(2vw + 0.5rem), 2.3rem);}
h3, .h3 {font-weight: 600; font-size: clamp(1.25rem, calc(1.5vw + 0.5rem), 1.8rem);}
h4, .h4 {font-weight: 600; font-size: clamp(1rem, calc(0.8vw + 0.5rem), 1.5rem);}
h5, .h5 {font-size: 1rem; font-weight: 400;}
h6, .h6 {font-size: 0.75rem; font-weight: 400;}
p, h1, h2, h3, h4, h5, h6, li, span, a {
    overflow-wrap: break-word;
	word-wrap: break-word;      /* für ältere Browser */
	hyphens: none;
	-webkit-hyphens: none;             
}
/**/
.flex div h1, .flex div .h1 {
	text-align: left;
}
/*-------------------------------------------------------------------------------------------------------------------------*/
.button {
	position:relative;
    display: inline-block;
    padding: 0.5rem 1.75rem 0.5rem 0.75rem;    
    background-color: var(--blau);
    border: 2px solid var(--blau);    
    color: var(--milch);    
    text-decoration: none;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 1.25rem;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
	background-image:none;
}

.button:hover,
.button:focus {
    background-color: var(--milch); 
    border-color: var(--blau);     
    
    color: var(--blau);    
    transform: translateY(-2px);
    box-shadow: 4px 4px 0px 0px rgba(0,0,0,0.5);
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;

}
.button::after {
    content: '\f054'; 
    font-family: 'FontAwesome'; 
    font-weight: 400; 
    position: absolute;
    top: 50%;
    right: 0.5rem; 
    transform: translateY(-45%);
    transition: transform 0.2s ease;
}

.button:hover::after,
.button:focus::after {
    transform: translateY(-45%) translateX(5px);
}

.bg-milch .button,
.bg-sand .button {
    background-color: var(--akzent-farbe);
    border-color: var(--akzent-farbe);
    color: var(--btn-text-hell);     
}

.bg-milch .button:hover,
.bg-milch .button:focus {
    background-color: color-mix(in srgb, var(--lokaler-hintergrund), var(--dunkel) 7%);     
    border-color: var(--akzent-farbe); 
    color: var(--akzent-farbe);    
}

.bg-sand .button:hover,
.bg-sand .button:focus {
    background-color: color-mix(in srgb, var(--lokaler-hintergrund), white 60%);     
    border-color: var(--akzent-farbe); 
    color: var(--akzent-farbe); 
}

.bg-tiefblau .button,
.bg-gruen .button,
.bg-turkis .button,
.bg-blau .button {
    background-color: transparent;
    border-color: var(--milch);
    color: var(--milch);
}
.bg-dunkel .button { 
	background-color:var(--babyblau); 
	border-color:var(--babyblau); 
	color:var(--tiefblau);}


.bg-dunkel .button:hover, 
.bg-dunkel .button:focus {     
	background-color: var(--gruen);    
	border-color: var(--gruen);    
	color: var(--milch);
    box-shadow: 4px 4px 0px 0px rgba(var(--babyblau-base), 0.7);
}
.bg-tiefblau .button:hover,
.bg-tiefblau .button:focus {
    background-color: var(--milch);
    color: var(--tiefblau); 
}

.bg-gruen .button:hover,
.bg-gruen .button:focus {
    background-color: var(--milch);
    color: var(--gruen); 
}

.bg-turkis .button:hover,
.bg-turkis .button:focus {
    background-color: var(--milch);
    color: var(--turkis); 
}

.bg-blau .button:hover,
.bg-blau .button:focus {
    background-color: var(--milch);
    color: var(--blau); 
}



/**/
.image {	padding: calc(0.5em + 0.375vw + 0.375vh);}
.image img {
	width: 100%;
	height: auto;

    border: 2px solid var(--akzent-farbe);    
    transition: border-color 0.2s ease, transform 0.2s ease;    
    padding: 2px;
}
.image .rund { border-radius:100%; max-width:800px;}
#courses .image img { border-color:transparent !important;}
/*-------------------------------------------------------------------------------------------------------------------------*/
.clear {
	clear: both;
	line-height: 0px;
	height: 0px;
}
.clear:after {
	content: "";
	display: block;
	clear: both;
}
hr, .trennlinie {
	clear: both;
	background-color: rgba(var(--blau-base), 0.5);
	border: 0;
	margin: 2em;
	padding: 0;
	height: 2px;
	text-align: center;
}
/*---------------------------------------------------*/
/* Währungs-Info */
.exchange-info-box {
    display: none; /* Aktivierung durch functions.js */
    border-top: 1px solid rgba(0,0,0,0.1); 
    padding: 20px 10px;
    margin-top: 20px;
    text-align: center;
    width: 100%;
}

.exchange-info-box p {
    margin: 0 !important;
    font-size: 0.9em;
    color: inherit; 
    opacity: 0.9;
}
.exchange-info-box i {
    color: var(--akzent-farbe);
    margin-right: 6px;
}
.exchange-info-box strong {
	font-weight: 700;
}
.exchange-info-box .sub-text {
    display: block;
    font-size: 0.8rem;
    opacity: 0.6;
    margin-top: 5px;
    font-style: italic;
}
.bg-dunkel .exchange-info-box {
    border-top-color: rgba(255,255,255,0.1);
}
/*-------------------------------------------------------------------------------------------------------------------------*/
#formular {
	padding: 2rem;
	display: block;
	background-color: var(--milch);
	border-radius: 0.5em;
	box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

#formular h2 {
    margin-top: 0;
    margin-bottom: 1.5rem;
    color: var(--main);
    font-size: 1.8rem; }

#formular label {
    display: block;
    font-weight: 700;
    margin-bottom: 6px;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--main); }

input, textarea, select {
    border: 1px solid #ddd;
    width: 100%;
    padding: 10px 15px;
    color: var(--main);
    height: 48px;
    margin-bottom: 1rem;
    border-radius: 6px;
    background-color: #ffffff;
    font-family: 'Mulish', sans-serif;
    font-size: 16px;
    transition: all 0.3s ease;
    box-sizing: border-box; }

textarea {
    height: 120px;
    padding-top: 12px;
    resize: vertical; }

input:focus, textarea:focus {
    border: 1px solid var(--rot);
    outline: none;
    box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.1); }

.send-btn {
    background-color: var(--gruen);
    color: #fff;
    padding: 10px 30px;
    border-radius: 4px;
    font-size: 1.2rem;
    border: 1px solid var(--gruen);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.3s ease;
    display: inline-block; }

.send-btn:hover {
    background-color: #fff;
    color: var(--gruen);
    box-shadow: 0 0 10px rgba(0,0,0,0.2); }

.contact-details p {
    margin-bottom: 1.2rem;
    line-height: 1.5; }

.contact-details i {
    color: var(--babyblau);
    margin-right: 10px;
    width: 20px; }



.booked-box {
    margin-top: 3rem;
    padding: 25px;
    border: 2px dashed var(--gruen);
    border-radius: 12px;
    background-color: var(--milch); }

.small-red {
    color: var(--rot);
    font-weight: 600;
    font-size: 0.875rem;
    line-height: 1rem;
    display: block;
    margin-top: -1rem;
    margin-bottom: 1rem; }

@media (max-width: 993px) {
    .flex.vert-center {
        flex-direction: column; }
    .w38, .w62 {
        width: 100% !important;
        padding: 1rem 0; }
    .booked-box {
        order: 3;
        margin-top: 2rem; } }

/* --- Layout für den Check-In Fragebogen --- */

#formular-full {
    max-width: 1200px;
    margin: 0 auto;
    padding: 3rem;
    background-color: var(--milch);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1); }

#formular-full h3 {
    margin-top: 2.5rem;
    color: var(--gruen);
    border-bottom: 1px solid #ddd;
    padding-bottom: 8px;
    text-transform: uppercase;
    font-size: 1.1rem;
    letter-spacing: 1px; }
.w25 {    width: 25%; }
.agb-scrollbox {
	overflow-y: auto;
	background: rgba(0,0,0,0.03);
	padding: 20px;
	border-radius: 6px;
	font-size: 0.85rem;
	line-height: 1.6;
	margin-bottom: 1.5rem;
	border: 1px solid #ccc;
	color: var(--main);
}
.check-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 1.5rem 0; }
.check-item {
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    cursor: pointer;
    color: var(--main); }
.check-item input {
    width: 20px;
    height: 20px;
    margin-right: 12px;
    margin-bottom: 0;
    cursor: pointer; }
/* Styling für die digitalen AGB-Haken */
.agb-check {
    margin: 1rem 0;
    display: flex;
    align-items: flex-start;
    color: var(--main);
    font-size: 0.95rem; }

.agb-check input {
    width: auto;
    height: auto;
    margin-right: 15px;
    margin-top: 4px; }
/* Unterschriften-Feld (Signature Pad) */
.signature-section {
    margin: 2rem 0; }

.signature-pad {
    border: 2px dashed #999;
    background: #fff;
    width: 100%;
    height: 250px;
    border-radius: 8px;
    margin: 1rem 0;
    cursor: crosshair;
    display: block; }

.btn-small {
    background: none;
    border: 1px solid var(--rot);
    color: var(--rot);
    padding: 6px 12px;
    cursor: pointer;
    border-radius: 4px;
    font-size: 0.75rem;
    transition: all 0.3s ease; }

.btn-small:hover {
    background-color: var(--rot);
    color: #fff; }

@media (max-width: 768px) {
    .w25 { width: 100%; }    
    .check-grid { grid-template-columns: 1fr; }    
    #formular-full {  padding: 0.5rem; }    
    .signature-pad { height: 180px; } 
}
/*-------------------------------------------------------------------------------------------------------------------------*/
.galerie {
	position: relative;
	width: 100%;
	margin: 0 auto;
}
.galerie ul {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-start;
}
.galerie ul li {
	list-style: none;
	display: inline-block;
	flex: 0 1 auto;
	flex-basis: 50%;
	margin: 0;
	padding: calc(1vw + 1vh);
}
.galerie ul li img, .galerie ul li a {
	border: 0;
	padding: 0;
	margin: 0;
	vertical-align: top;
}
.galerie ul li img {
	border: 1px solid var(--gruen);
	height: auto;
	width: 100%;
}
.galerie ul li a img:hover {
	border-color: var(--milch);
	transform: scale(1.05);
}
/*---------------------------------------------------------------------------------*/
.tour-grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    padding-bottom: 40px;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    box-sizing: border-box;
}

.tour-card {
    background-color: var(--weiss);
    border-radius: 2px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(var(--dunkel-base), 0.1);
    position: relative;
    transition: transform 0.3s ease;
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
}
.bg-dunkel .tour-card.bg-milch {
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    border: none;
}
.tour-card:hover {
    transform: translateY(-5px);
}
.price-tag {
    position: absolute;
    top: 15px;
    right: 15px;
    background: var(--tiefblau);
    color: var(--milch);
	border:1px solid var(--milch);
    padding: 5px 12px;
    border-radius: 2px;
    font-weight: bold;
    z-index: 2;
}
.tour-card img {
    width: 100%;
    object-fit: cover;
    display: block;
}
.card-body {
    padding: 20px;
}
.card-body h3 {
    color: var(--akzent-farbe);
    margin-top: 0;
}
.card-body p {
    color: var(--dunkel);
}
.tour-details {
    list-style: none;
    padding: 0;
    margin: 15px 0 auto 0;
    font-size: 0.95rem;
    color: var(--dunkel);
}
.tour-details li {
    position: relative;
    padding-left: 30px; 
    margin-bottom: 8px;
    line-height: 1.4;
}
.tour-details i {
    position: absolute;
    left: 0;
    top: 3px;
    color: var(--akzent-farbe);
    width: 20px;
    text-align: center;
    font-size: 1.1rem;
}
.tour-details strong {
    display: inline-block;
    min-width: 85px;
}
.tour-details span {
    display: inline; 
}
.button-small {
    position: relative;
    display: inline-block;
    padding: 0.4rem 1.75rem 0.4rem 0.75rem;
    background-color: var(--akzent-farbe);
    border: 2px solid var(--akzent-farbe);
    color: var(--weiss);
    text-decoration: none;
    border-radius: 2px;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.2s ease;
    align-self: flex-start;
    margin-top: 15px;
}
.button-small::after {
    content: '\f054';
    font-family: 'FontAwesome';
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.8rem;
}
.button-small:hover {
    background-color: color-mix(in srgb, var(--lokaler-hintergrund), var(--dunkel) 7%);
    color: var(--akzent-farbe);
}
@media (max-width: 900px) {
    .tour-grid-container {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 600px) {
    .tour-grid-container {
        grid-template-columns: 1fr;
    }
}

/* ----------------------------- TOUR-SLIDER OPTIMIERUNG -------------------------- */
.owl-carousel.tour-slider {
	display: block !important;
	width: 100%;
	position: relative;
	padding: 0 0 5vw 0;
}
.tour-slider .tour-card { margin: 15px 10px; }
.tour-card-link { text-decoration: none !important; display: block; color: inherit; height: 100%; }
/* Navigation Pfeile (Innen liegend) */
.tour-slider .owl-nav button.owl-prev,
.tour-slider .owl-nav button.owl-next { position: absolute; top: 50%; transform: translateY(-50%); background: none !important; color: var(--tiefblau) !important; z-index: 10; border: none !important; cursor: pointer; outline: none; transition: all 0.3s ease; }
.tour-slider .owl-nav button i { font-size: 60px !important; text-shadow: 0 0 10px rgba(255, 255, 255, 0.9); }
.tour-slider .owl-nav .owl-prev { left: 40px; }
.tour-slider .owl-nav .owl-next { right: 40px; }
.tour-slider .owl-nav button:hover { color: var(--akzent-farbe) !important; transform: translateY(-50%) scale(1.1); }
/* Dots (Punkte unter dem Slider) */
.tour-slider .owl-dots { text-align: center; margin-top: 10px; }
.tour-slider .owl-dot span { width: 10px; height: 10px; margin: 5px 7px; background: #d6d6d6 !important; display: block; border-radius: 50%; transition: background 0.3s ease; }
.tour-slider .owl-dot.active span { background: var(--akzent-farbe) !important; }
/* Mobile Anpassung */
@media (max-width: 768px) {
    .tour-slider .owl-nav .owl-prev { left: 10px; }
    .tour-slider .owl-nav .owl-next { right: 10px; }
    .tour-slider .owl-nav button i { font-size: 45px !important; }
}
/*-------------------------------------------------------------------------------------------------------------------------*/	
.navi-quick ul{list-style:none;margin:0 auto;padding:0;display:flex;flex-flow:row wrap; justify-content: center;}
.navi-quick ul li{position:relative;display:inline-block;margin:0;padding:1vw;flex:1 1 auto;text-align:center;color:var(--babyblau);font-weight:600;font-size:1.125em;text-transform:uppercase;text-align:center;}
.navi-quick ul li a{text-decoration:none;position:relative;display:block;}
.bg-sand.navi-quick ul li, .bg-milch.navi-quick ul li { color: var(--akzent-farbe);}
.navi-quick ul li img{
	display: none; /*block;*/
	margin: 1rem auto;
	border-radius: 100%;
	width: 100%;
	height: auto;
	max-width: 400px;
	transition: all 0.3s ease-in-out;
}
.navi-quick ul li a:hover img{filter:saturate(1.2) brightness(0.5);transform:scale(1.03);box-shadow:0 0 10px rgba(255,255,255,0.5)}
.navi-quick ul li:not(:has(img)) {    
    flex-grow: 0;     
    flex-shrink: 1; 
    flex-basis: auto;
	white-space: nowrap;
	text-transform:none !important;
	margin-left:4px; margin-right:4px;
}
.navi-quick ul li:has(img)::after {
    animation: none;}
@media only screen and (min-width: 481px) {
	.navi-quick ul li::after {
    content: ''; 
    position: absolute; bottom: 0; left: 0; 
    width: 100%; 
    height: 3px; 
    background-color: rgba(var(--babyblau-base), 0.35);
    opacity: 0; 
    transform-origin: left center; 
    transform: scaleX(0);
    animation: sweep-pulsate 5s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite;
}
.navi-quick ul li a:hover::after{content:"\f061";font-family:'FontAwesome';position:absolute;display:block;font-size:3rem;font-weight:bold;top:44%;left:50%;transform:translate(-50%,-50%);color:var(--weiss);opacity:1;text-shadow:0 0 10px rgba(0,0,0,0.8);z-index:10}
	
}
@media only screen and (max-width: 480px) {
	.navi-quick ul { flex-flow:column; position:relative;}	
	.navi-quick ul li:after { content:"\f054";font-family:'FontAwesome'; position:absolute; right:0.5rem; top:0.25em; font-size:75%;}
	.navi-quick ul a::after {
    content: ''; 
    position: absolute; bottom: 0; left: 0; 
    width: 100%; 
    height: 3px; 
    background-color: rgba(var(--babyblau-base), 0.35);
    opacity: 0;     
    transform-origin: left center; 
    transform: scaleX(0);    
    animation: sweep-pulsate 6s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite;
}
}


@keyframes sweep-pulsate {
    0% {transform: scaleX(0); opacity: 0;}
    15% {transform: scaleX(1); opacity: 1;}
    65% {transform: scaleX(1); opacity: 1;}
    80% {transform: scaleX(0); opacity: 1;}
    81% {opacity: 0;}
    100% {transform: scaleX(0); opacity: 0;}
}
/*-------------------------------------------------------------------------------------------------------------------------*/	
.error {
	font-size: 0.9em;
	color: #F00;
}
/*-------------------------------------------------------------------------------------------------------------------------*/
@media only screen and (max-width: 768px) {
	.sticky .logo {
		transform: scale(0.5);
		transform-origin: left 5px;
		z-index: 6000
	}
	header{
		height: 50px;
		background-color: rgba(var(--dunkel-base), 1);
	}
	.sticky header {
		height: 54px;
	}
	.contacts ul {
		list-style: none;
		padding: 0.5rem;
		margin: 0;
	}
	.contacts ul li {
		padding: 4px;
		margin: 0;
		display: inline-block;
	}
	.contacts ul:first-child {
		position: fixed;
		z-index: 2000;
		top: 0;
		left: 150px;
	}
	#telefon span {
		display: none
	}
	.contacts ul li:last-child {
		display: none;
	}
	.contacts a {
		text-decoration: none;
		color: var(--babyblau);
	}
	.contacts a:hover {
		color: var(--babyblau);
		background-color: var(--gruen);
	}
	h2, .h2 {
		font-size: 1.5rem;
	}
	/*--------------------------------------------------------------------------*/
    nav, nav ul, nav ul li {
		padding: 0;
		margin: 0;
		list-style: none;
		position: relative;
		text-align: left;
	}	
	#menuToggle {
		display: block;
		position: fixed;
		top: 0.5em;
		right: 0.5em;
		width: 48px;
		height: auto; 
		padding: 10px 0 8px 0; 
		background-color: var(--gruen);
		box-shadow: 0 0 4px rgba(0,0,0,0.5);
		border-radius: 4px;
		z-index: 1000 !important;
		text-align: center; 
	}	
	#menuToggle:after {
		content: 'MENÜ';
		color: #fff;
		font-size: 11px; 
		font-weight: 700;
		display: block;
		line-height: 1;
		margin-top: 2px;
	}	
	#menuToggle input {
		display: block;
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
		cursor: pointer;
		opacity: 0;
		z-index: 1010 !important;
	}	
	#menuToggle span {
		display: block;
		width: 30px; 
		height: 4px;
		margin: 0 auto 5px auto; 
		position: relative;
		background-color: #fff;
		transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0), opacity 0.55s ease;
		z-index: 1002;
		pointer-events: none;
	}	
	#menu {
		position: fixed;
		overflow: auto;
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		padding: calc(10vw + 10vh);
		padding-left: calc(5vw + 5vh);
		background-color: var(--turkis);
		background-image: url(../images/6061-188582318_medium.gif);
		background-size: cover;
		transform: translate(0, -300%);
		transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
		z-index: 999;
	}	
	#menuToggle input:checked ~ #menu {
		transform: translate(0, 0);
	}
	
	.submenu {
		position: fixed;
		left: 0;
		right: 0;
		top: 0;
		height: 100%;
		padding-top: calc(10vw + 10vh);
		padding-left: calc(5vw + 5vh);
		background-color: var(--gruen);
		background-image: url(../images/6061-188582318_medium.gif);
		background-size: cover;
		transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
	}	
	.submenu.hide {
		z-index: -150;
		transform: scale(0, 0) translate(-500%, 0);
	}
	
	.submenu.show {
		z-index: 1200;
		transform: scale(1, 1) translate(0, 0);
	}
	
	nav ul li a {
		text-decoration: none;
		padding: 0.125em 0.25em;
		line-height: 40px;
		display: inline-block;
		text-transform: uppercase;
		font-weight: 600;
		font-size: 24px;
		color: #fff;
	}	
	.submenu li a {
		text-transform: none;
		font-weight: normal;
	}
	#menuToggle span:nth-last-child(1) { margin-bottom: 0;	}
	/* Hamburger Animation */
	#menuToggle input:checked ~ #one { transform: rotate(45deg) translate(5px, 7px); }
	#menuToggle input:checked ~ #two { opacity: 0; transform: scale(0.2); }
	#menuToggle input:checked ~ #three { transform: rotate(-45deg) translate(5px, -8px); }
	
		@media (orientation: landscape) {
			nav li { width: 45%; float: left; display: inline-block; }
			.submenu li:first-child { width: 100%; }
		}
		
	}

 @media only screen and (min-width: 680px) {
	.column {
		column-count: 2;
		column-gap: 5vw;
		max-width: 1280px;
		margin: auto;
	}
	.galerie ul li {
		flex-basis: calc(100% / 3);
		padding: calc(0.5vw + 0.5vh);
	}
}
/*-------------------------------------------------------------------------------------------------------------------------*/
@media only screen and (min-width: 769px) {
	header {
		background: var(--dunkel);
		backdrop-filter: blur(7px) brightness(130%);
		height: calc(100px + 4.25vw);
	}
	.logo {
		width: 120px;
		width: 14vw;
	}
	.sticky header {
		height: 100px;
		box-shadow: 0 0 10px rgba(0,0,0,0.5);
	}
	.sticky .logo {
		position: fixed;
		top: 0.5rem;
		left: 0.5rem;
		transform: scale(0.5);
		transform-origin: left top;
		z-index: 6000
	}
	.contacts {
	position: absolute;
	right: 3vw;
	top: 1em;
	color: rgba(var(--weiss-base),0.8);
	}
	.contacts ul {
		list-style: none;
		padding: 0;
		margin: 0;
	}
	.contacts li {
		list-style: none;
		padding: 0;
		margin: 0;
		display: inline-block;
	}
	.contacts a {
		display: inline-block;
		padding: 4px 8px;
		text-decoration:none;
	}
	.sticky .contacts { top:4px;}
	h1, .h1 { text-align:center;}
	/*----------------------------- NAVIGATION ------------------------------*/
	#menuToggle input { display: none; }
    #menuToggle { margin: 0 auto; position: relative; }
    
    nav {
        margin: 0;
        padding: 0.25em 0;
        position: absolute;
        z-index: 1005;
        top: 105px;
        right: 0px;
        left: auto;
        background-color: var(--dunkel);
    }
    .sticky nav {
        position: fixed;
        left: 0;
        right: 0;
        top: 2.25rem;
        background-color: transparent;
    }
    nav ul {
        margin: 0 auto;
        padding: 0 1vw;
        list-style-type: none;
        display: flex;
        justify-content: flex-end;
        flex-flow: row wrap;
    }
    nav ul li a {
        font-size: calc(0.75rem + 0.375vw);
        line-height: 1.75em;
        display: inline-block;
        margin: 0 0.1em;
        padding: 0 calc(0.4em + 0.45vw);
        text-decoration: none;
        color: #fff;
        text-transform: uppercase;
        border-radius: 2px;
        cursor: pointer;
    }
    nav a.aktiv { background-color: var(--rot); }
    nav a:hover {
        color: var(--tiefblau);
        background-color: var(--milch);
        box-shadow: 0 8px 15px 0 rgba(255, 255, 255, 0.2);
    }
    /* --- Pfeile (Chevrons) Sichtbarkeit --- */
    nav a .fa-chevron-right {
        display: inline-block;
        margin-left: 5px;
        font-size: 0.8em;
        transition: transform 0.3s ease;
        transform: rotate(90deg);
    }
    .submenuOpen.show .fa-chevron-right {
        transform: rotate(-90deg);
    }
	nav ul li {
        position: relative; 
        display: block;
    }
    /* --- Submenü Overlay --- */
    .submenu {
        display: block;
        position: absolute;
        left: 50%;
        transform: translateX(-50%) perspective(400px) rotateX(-10deg) scaleY(0);
        top: 100%; 
        min-width: 200px;
        width: auto;
        white-space: nowrap;
        
        background-color: rgba(var(--tiefblau-base), 0.9);
        backdrop-filter: blur(8px);
        padding: 0.5rem 0;
        border-radius: 0 0 4px 4px;
        box-shadow: 0 10px 20px rgba(0,0,0,0.3);
        
        opacity: 0;
        visibility: hidden;
        transform-origin: top center;
        transition: transform 0.4s ease, opacity 0.3s ease;
        z-index: 2000;
    }
    /* Sichtbarer Zustand durch jQuery .show */
    .submenu.show {
        visibility: visible;
        opacity: 1;
        transform: translateX(-50%) perspective(400px) rotateX(0deg) scaleY(1);
    }
	nav ul li:last-child .submenu {
        left: auto;
        right: 0;
        transform: perspective(400px) rotateX(-10deg) scaleY(0);
        transform-origin: top right;
    }
    nav ul li:last-child .submenu.show {
        transform: perspective(400px) rotateX(0deg) scaleY(1);
    }
    .submenu li { display: block; }
    
    .submenu a {
        text-transform: none;
        display: block;
        padding: 0.5rem 1.5rem;
    }
    .submenu a:before {
        content: '- ';
        font-weight: 800;
    }
    /* Zurück-Button auf Desktop ausblenden, da Click-Outside oder neuer Klick schließt */
    .submenuClose { display: none !important; }
	nav a.aktiv:focus {   color:#fff;}	
	nav a.aktiv:hover {   color:var(--tiefblau);}
	/*-----------------------------------------------------------------*/
	form .left {
		float: left;
		width: 48%;
		margin-right: 2%;
		min-width: 220px;
	}
}
@media only screen and (min-width: 681px) {
	.centered { text-align: center;	}
}

.flex > div { padding: calc(0.75rem + 0.5vw + 0.5vh);	}
@media only screen and (min-width: 980px) {
	nav ul {        justify-content: center; padding-left:10vw; }
}
@media only screen and (min-width: 1024px) {
	.flex {
		display: flex;
		flex-flow: row wrap; 	}
	.flex.vert-center {align-items: center;}
	.content, .image {
		flex: 1 1 auto;
		align-self: center;	}
	form .content { align-self: flex-start;	}
	.w50 {  width: 50%;	}
	.w100 { width: 100%;	}
	.w62 {	width: 62%;	}
	.w38 { 	width: 38%;	}
	.w33 { 	width: 33%;	}
	.w66 {	width: 66%;	}
	.w25 {	width: 25%;	}
	.galerie ul li { flex-basis: calc(100% / 4);	}
	.content p, .content h1, .content .h1, .content h2, .content .h2, .content h3, .content h4, .content ul {
	max-width: 960px;
	margin-left: auto;
	margin-right: auto;
	}
	main p, main ul {	font-size: 1.125rem;	}
	h2, .h2 { text-align:center;}
	.w50 h2, .w50 .h2 { text-align:left;}

}
@media only screen and (max-width: 480px) {
    .flex-reverse {
        flex-direction: column; 
    }
}
@media only screen and (min-width: 481px) {
    .flex-reverse {
        flex-direction: row-reverse;
    }
}

@media only screen and (min-width: 1148px) {
	.logo { top:0.5rem;		left: 3vw;	}	
}
@media only screen and (min-width: 1440px) {
	.logo {
		position: absolute;
		width: 250px;
	}
	nav { 	font-size: 1.25rem;	}
	main p, main ul {	font-size: 1.25rem;	}
	.galerie ul li { flex-basis: calc(100% / 5 );	}
}
/*----------------------------------------------------------*/
.team-liste .image img {
	margin: 0 auto;
	max-width: 980px;
}
/*-------------------------------------------------------------------------------------------------------------------------*/
#totop, #totop:visited {
	position: fixed;
	width: 1.5em;
	height: 1.5em;
	line-height: 1.5em;
	text-align: center;
	right: 0;
	bottom: 8vh;
	padding: 0;
	border-radius: 2px;
	color: var(--gruen);
	background-color: rgba(255,255,255,0.75);
	font-size: calc(1rem + 0.5vw + 0.5vh);
	text-decoration: none;
	transform: rotate(180deg);
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	z-index: 999;
}
#totop:hover {
	background-color: rgba(255, 255, 255);
}
#totop.show {
	transform: rotate(0deg);
	visibility: visible;
	cursor: pointer;
	opacity: 1.0;
}
::-moz-selection { /* Code for Firefox */
 color: rgb(255,255,255);
background-color: var(--turkis);
}
::selection {
	color: rgb(255,255,255);
	background-color: var(--turkis);
}
/*---------------------------------------------------------*/

/*-----------------------------------------------------------*/
.content-grid {background-color: var(--dunkel);padding: 10px;display: flex;flex-direction: column;gap: 15px;position: relative;box-sizing: border-box;}
.image-box {width: 100%;border: 2px solid var(--babyblau);position: absolute;top: 10px;left: 10px;height: 60vw;overflow: hidden;opacity: 0;z-index: 1;animation: fade-in-out 7.5s infinite;box-shadow: 2px 2px 10px rgba(0,0,0,0.7);}
.image-box img {width: 100%;height: 100%;object-fit: cover;display: block;}
.deco-text-block {width: 100%;margin-top: calc(60vw + 15px);position: relative;z-index: 5;}
.linien {text-align: right;color: var(--gruen, rgb(235, 230, 220));font-size: 1.2rem;}
#image-jump {animation-delay: 0s;}
#image-diver {animation-delay: 2.5s;}
#image-swarm {animation-delay: 5s;}
@keyframes fade-in-out {
  4% {opacity: 1;z-index: 2;}
  29% {opacity: 1;z-index: 2;}
  33.33% {opacity: 0;z-index: 1;}
  0%, 100% {opacity: 0;z-index: 1;}
}


/* --- DESKTOP/TABLET GRID LAYOUT (Ab 768px Breite) --- */
@media (min-width: 768px) {
    /* --- Grid-Aktivierung und Definition --- */
    .content-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        gap: 2vw;
        position: static;
        max-width: 96vw;
        margin: 40px auto;
        flex-direction: unset;
    }
    /* --- image-box Reset & Gleichgroße Bilder --- */
    .image-box {
        position: static;
        height: 32vw;
        animation: none; 
        opacity: 1; 
        z-index: 1;
        margin: 0;
    }
    .deco-text-block {
        margin-top: 0;
        z-index: 5;
    }
    /* Grid-Platzierung */
    #image-jump {
        grid-column: 1 / 2;
        grid-row: 1 / 2;
        z-index: 2;
    }
    #image-diver {
        grid-column: 1 / 2;
        grid-row: 2 / 3;
        margin-top: -14vw;
        margin-left: 5vw;
        z-index: 4;
    }
    #image-swarm {
        grid-column: 2 / 3;
        grid-row: 1 / 2;
        margin-left: 0;
        margin-top: 10vw;
        z-index: 3;
    }
    .deco-text-block {
        grid-column: 2 / 3;
        grid-row: 2 / 3;
        align-self: end;
        margin-top: 0px;
        z-index: 5;
    }
}
/*------------------------------------------------------------------------------------------------*/
.animate__animated:not(.logo) {
    visibility: hidden;
}
.animate__animated {
    animation-duration: 1.5s !important; 
    animation-delay: 0.1s;
    opacity: 0;
}
.is-visible {
    visibility: visible !important;
    animation-fill-mode: both; 
    /*opacity:1;*/
}
/* =======================================================================
   ANIMATE.CSS KEYFRAME ÜBERSCHREIBUNG
   ======================================================================= */
@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translate3d(-5vw, 0, 0); 
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}
@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translate3d(5vw, 0, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}
/* Dezentere fadeInUp Animation */
@keyframes fadeInUp {
  from {
    opacity: 0;
    /* Reduziert den Weg von 100% auf 20 Pixel */
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
/*--------------------------------------------------------------------------*/
/* Styling für das Details-Element */
.tour-accordion {
    margin: 0.75rem 0; 
    border: none;
}

.tour-accordion summary {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.5rem 1rem; 
    background: transparent;
    color: var(--tiefblau, #003366);
    border: 2px solid var(--tiefblau, #003366); 
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: bold;
    text-transform: uppercase;
    list-style: none;
    transition: all 0.3s ease;
}

.tour-accordion summary::-webkit-details-marker {
    display: none;
}
.tour-accordion summary::before {
    content: '+'; font-weight:800;
    display: inline-block;
    margin-right: 0.5rem; top:1rem;
    line-height: 1; 
    transition: transform 0.3s ease;
	transform-origin:center;
    
}
.tour-accordion[open] summary {
    border-color: var(--akzent-farbe, #e67e22);
    color: var(--akzent-farbe, #e67e22);
}
.tour-accordion[open] summary::before {   
content: '-';}

.accordion-inner {
	padding: 0.5em;
	background: rgba(255, 255, 255, 0.4);
	border: 1px solid #eee;
	border-top: none;
	border-radius: 0 0 0.25rem 0.25rem;
	font-size: 0.85em;
	color: #444;
}
/*------------------------------------------------------------------------------*/
/* Layout-Breiten */
.w62 { flex: 0 0 62%; }
.w20 { flex: 0 0 20%; }
.w18 { flex: 0 0 18%; }

/* Preis-Listen Styling */
.price-section {
    margin-top: 2rem; 
}

.price-row {
    display: flex;
    padding: 0.75rem 0; 
    border-bottom: 1px solid #eee; 
    align-items: center;
}
.header-row {
    font-weight: bold;
    border-bottom: 2px solid var(--tiefblau);
    text-transform: uppercase;
    font-size: 0.8rem;
}
.price-row strong {
    display: block;
    font-size: 0.95rem;
}
.price-row span {
	display: block;
	color: var(--turkis);
}
.price-cell {
    font-weight: bold;
    color: var(--tiefblau);
}

/* Responsiveness für die Tabelle */
@media (max-width: 960px) { 
    .header-row {
        display: none;
    }    
    .price-row {
        flex-direction: column;
        align-items: flex-start;
        padding: 1rem 0;
    }    
    .price-row .w62, 
    .price-row .w20, 
    .price-row .w18 {
        flex: 0 0 100%;
        width: 100%;
        margin-bottom: 0.25rem;
    }
    /* Fügt Labels am Handy hinzu */
    .price-row div[data-label]::before {
        content: attr(data-label);
        font-weight: normal;
        color: #999;
        font-size: 0.75rem;
    }
}
.img-cover {
    align-self: stretch;
    overflow: hidden;
    position: relative;
}

.img-cover img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 768px) {
    .w50 {
        width: 100%;
    }
    
    .img-cover {
        position: static;  /* zurücksetzen */
        overflow: visible;
    }
    
    .img-cover img {
        position: static;  /* zurücksetzen */
        inset: auto;
        height: auto;      /* eigene Größe */
        object-fit: unset;
    }
}
/*------------------------------------------------------------------------------------------------*/
/* --- WHATSAPP WIDGET (SOFORT SICHTBAR) --- */
.whatsapp-widget {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 9999;
    font-family: 'Segoe UI', Helvetica, Arial, sans-serif;
    /* Animation beim Laden der Seite */
    animation: wa-pop-in 0.5s ease-out forwards;
}

@keyframes wa-pop-in {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Der Button unten rechts */
.wa-trigger-button {
    background-color: #25D366;
    color: white;
    padding: 10px 20px;
    border-radius: 50px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    font-weight: bold;
    font-size: 15px;
}

/* Die Chat-Box */
.wa-chat-box {
    display: none; /* Wird per JS auf block gesetzt */
    width: 300px;
    background-color: #f4f7f5; /* Heller, sauberer Hintergrund statt Wallpaper */
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    margin-bottom: 15px;
}

/* Header */
.wa-chat-header {
    background-color: #075e54;
    color: white;
    padding: 12px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.wa-header-text strong { display: block; font-size: 14px; }
.wa-header-text span { font-size: 11px; opacity: 0.8; }
.close-chat { cursor: pointer; font-size: 24px; line-height: 1; }

/* Body */
.wa-chat-body {
    padding: 20px;
    max-height: 250px;
    overflow-y: auto;
}

.wa-day-divider {
    text-align: center;
    margin-bottom: 15px;
}

.wa-day-divider span {
    background: #dcf8c6;
    padding: 4px 12px;
    border-radius: 6px;
    font-size: 11px;
    color: #555;
}

/* Sprechblase */
.wa-bubble {
    background: white;
    padding: 12px;
    border-radius: 0 12px 12px 12px;
    font-size: 14px;
    line-height: 1.4;
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
    max-width: 90%;
    color: #333;
}

/* Input Bereich */
.wa-input-container {
    background: #eeeeee;
    padding: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
}

#waUserInput {
    flex: 1;
    border: 1px solid #ddd;
    padding: 8px 12px;
    border-radius: 20px;
    font-size: 14px;
    height: 36px;
    outline: none;
    resize: none;
    background: white;
}

.wa-send-btn {
    background-color: #128c7e;
    color: white;
    border: none;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s;
}

.wa-send-btn:hover {
    background-color: #075e54;
}
/*youtube*/
.yt-thumb {
    position: relative;
    display: inline-block;
}
.yt-thumb::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 68 48'%3E%3Cpath d='M66.5 7.5a8.5 8.5 0 0 0-6-6C55.8 0 34 0 34 0S12.2 0 7.5 1.5a8.5 8.5 0 0 0-6 6C0 12.2 0 24 0 24s0 11.8 1.5 16.5a8.5 8.5 0 0 0 6 6C12.2 48 34 48 34 48s21.8 0 26.5-1.5a8.5 8.5 0 0 0 6-6C68 35.8 68 24 68 24s0-11.8-1.5-16.5z' fill='red'/%3E%3Cpath d='M27 34l18-10-18-10v20z' fill='%23fff'/%3E%3C/svg%3E") center center no-repeat;
    background-size: 68px 48px;
}
/* { background-color:rgba(0,0,0,0.1)}*/
