body {
	overflow-x: hidden !important;
}
.vc_row-has-fill > * {
  color: #fff;
}

.checkbox label:before,
.checkbox label:after {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	position: unset !important;
}

#main {
	overflow: hidden !important;
}

div.wpforms-container-full:not(:empty) {
  margin: 0;
}

.wpforms-container .wpforms-field {
  padding: 0;
  padding-bottom: 15px;
}

span.wpforms-required-label {
  display: none;
}

div.wpforms-container-full input[type=text]:focus:invalid {
  box-shadow: none !important;
}

.checkbox ul li label {
  padding-left: 2px !important;
  line-height: 1.3 !important;
}

.checkbox ul li label > a {
	text-transform: inherit;
}

.overflow-visible {
	overflow: visible !important;
}

.wpforms-field-checkbox input[type="checkbox"] {
	margin-top: 7px !important;
}

.actualcontent {
	padding-top: 200px;
}

.banner-area + .actualcontent {
	padding-top: 0;
}

.h-168 img {
	height: 168px;
	width: auto;
}

.fancybox__container {
	z-index: 100000;
}

/* Sea-themed gallery hover effect */
.wb-single-image-gallery-holder {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);

		margin-bottom: 25px;
}

.wb-single-image-gallery-holder a {
    position: relative;
    display: block;
    border-bottom: 0 !important;
    outline: unset !important;
    transition: 0.5s;
    overflow: hidden;
}

/* Main image styling */
.wb-single-image-gallery-holder img {
    display: block;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);

	width: 100%;
}

/* Gallery icon positioning and animation */
.wb-single-image-gallery-holder .wb-image-gallery-icon {
    position: absolute;
    bottom: 5%;
    right: 5%;
    width: 100px;
    max-width: 100%;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 3;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.2));
}

/* Wave sweep overlay */
.wb-single-image-gallery-holder a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg,
        transparent 30%,
        rgba(141, 208, 231, 0.3) 50%,
        rgba(226, 248, 255, 0.4) 70%,
        transparent 90%);
    transform: translateX(-100%) skewX(-15deg);
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
}

/* Animated wave border */
.wb-single-image-gallery-holder a::after {
    content: '';
    position: absolute;
    top: -3px;
    left: -3px;
    right: -3px;
    bottom: -3px;
    background: linear-gradient(45deg,
        var(--blue),
        var(--blue-light),
        var(--blue),
        var(--blue-light));
    background-size: 300% 300%;
    border-radius: 11px;
    z-index: -1;
    opacity: 0;
    transition: opacity 0.3s ease;
    animation: wave-border 3s ease-in-out infinite;
}

/* Hover state animations */
.wb-single-image-gallery-holder:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 30px rgba(141, 208, 231, 0.4);
}

.wb-single-image-gallery-holder a:hover,
.wb-single-image-gallery-holder a:focus,
.wb-single-image-gallery-holder a:active {
}

.wb-single-image-gallery-holder a:hover::before {
    transform: translateX(100%) skewX(-15deg);
}

.wb-single-image-gallery-holder a:hover::after {
    opacity: 1;
}

.wb-single-image-gallery-holder a:hover img {
    transform: scale(1.08);
}

.wb-single-image-gallery-holder a:hover .wb-image-gallery-icon {
    transform: scale(1.1);
    filter: drop-shadow(0 4px 12px rgba(141, 208, 231, 0.6));
}

/* Wave border animation */
@keyframes wave-border {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

.footer-area .templatera_shortcode .wpforms-container {
	margin-top: -15px !important;
}

.wellenrauschen-bitte {
    width: auto;
    width: 153px;
    height: 69px;

    position: relative;
}

/*.wellenrauschen-unlock {
    display: none;

    position: absolute;
    bottom: -30px;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}

.wellenrauschen-bitte.wb-hover-audio.audio-locked .wellenrauschen-unlock {
    display: block;
}*/

.z-1 {
		position: relative;
		z-index: 1;
}

.tauchen-row {
		margin-bottom: 200px;
		overflow: visible !important;
}

.special-wave-container {
	position: absolute;
	width: 100vw;
	left: 50%;
	top: 100%;
	transform: translateX(-50%);
	overflow: visible;
	pointer-events: none; /* prevents accidental interactions */
}

/* Splash is absolutely positioned above the container */
.splash-position-wrapper {
	position: absolute;
	bottom: 100%;
	left: 0;
	width: 100vw;
	height: auto;
	pointer-events: none;
	z-index: 10;
}

/* Splash Lottie spans full width */
.splash-position-wrapper .lottie-embed {
	width: 100vw;
	height: auto;
	position: absolute;
	left: 50%;
	bottom: 100%;
	transform: translateX(-50%);
	pointer-events: none;
}

body.search .header-area + .actualcontent,
body.error404 .header-area + .actualcontent,
.header-area + .actualcontent > .resort-blog-container,
.header-area + .actualcontent > .wpb-content-wrapper > .vc_row:first-of-type {
	padding-top: 200px;
}

.actualcontent h1 {
	font-size: 3.5rem;
  color: var(--blue);
  margin-bottom: 20px;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
  font-weight: 700;
  position: relative;
}

body.blog #main,
body.error404 #main,
body.search #main,
body.page-template-page-background #main {
    background: linear-gradient(135deg, var(--blue-light) 0%, #ffffff 100%);
}

body.error404 .actualcontent,
body.search .actualcontent {
	padding-bottom: 50px;
}

body.search .actualcontent article {
	margin-bottom: 50px;
}

body.search .actualcontent form {
	margin-bottom: 50px;
}

.wb-gesprochenen_sprachen {
	margin: 0;
	padding: 0;
	list-style: none;

	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 10px;
}

.wb-gesprochenen_sprachen img {
	height: 25px;
	width: auto;
	display: block;
}

#wpforms-form-591 .wpforms-submit-container button[type="submit"] {
	width: auto !important;
}

.wpforms-field-label-inline a {
		text-decoration: underline;
}

@media (min-width: 1600px){
		.wave-container.header-bg svg {
			height: 220px;
		}
}

@media (min-width: 2200px){
		.wave-container.header-bg svg {
			height: 270px;
		}
}

@media (max-width: 991px) {
		.hidden-on-mobile {
			display: none !important;
		}

        .fullscreen-menu {
            align-items: center;
        }

        .wb-single-image-gallery-holder .wb-image-gallery-icon {
            right: unset;
            left: 5%;
        }
}

@media (max-width: 767px) {
		.floating-info-content-table > * {
				order: 1;
		}

		.floating-info-content-table > *:nth-child(4) {
				order: 0;
		}
}

@media (max-width: 575px) {
    .slider-title {
        margin-bottom: 30px;
    }

	.horizontal-wrapper .h-block {
        width: 350px;
        min-width: 350px;
    }

    .fullscreen-menu {
        background-image: none;
        background-color: var(--blue);

        align-items: flex-start;
        padding-top: 5rem;
    }

    .fullscreen-menu ul {
        position: relative;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
    }

    .fullscreen-menu ul ul {
        padding-left: 20px;
        padding-top: 10px;
        padding-bottom: 20px;

        display: none;
    }

    .fullscreen-menu ul ul.active {
        display: block;
    }
}

/* WB POPUP BUTTON STYLES */
.wb-popup-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7);
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	box-sizing: border-box;
}

.wb-popup-content {
	background: white;
	border-radius: 8px;
	position: relative;
	max-height: 90vh;
	overflow-y: auto;
	width: 100%;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.wb-popup-close {
	position: absolute;
	top: 30px;
	right: 20px;
	background: none;
	border: none;
	font-size: 24px;
	cursor: pointer;
	color: #666;
	z-index: 10;
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background-color 0.2s;
}

.wb-popup-close:hover {
	background-color: #f0f0f0;
	color: #333;
}

.wb-popup-header {
	padding: 30px 30px 0;
	border-bottom: 1px solid #eee;
	margin-bottom: 20px;
}

.wb-popup-header h2 {
	margin: 0 0 20px 0;
	font-size: 24px;
}

.wb-popup-body {
	padding: 0 30px 30px;
}

.wb-popup-trigger {
	cursor: pointer;
}

.wb-error {
	color: var(--red);
	font-weight: bold;
	padding: 10px;
	background: #ffe6e6;
	border: 1px solid var(--green);
	border-radius: 4px;
}

/* WPBakery Accordion Custom Styles */
.vc_tta-accordion {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(141, 208, 231, 0.15);
    margin-bottom: 30px;
}

.vc_tta-accordion .vc_tta-panel {
    border: none;
    border-bottom: 1px solid rgba(141, 208, 231, 0.2);
    background: #ffffff;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.vc_tta-accordion .vc_tta-panel:last-child {
    border-bottom: none;
}

.vc_tta-accordion .vc_tta-panel:hover {
    background: linear-gradient(135deg, rgba(141, 208, 231, 0.05) 0%, #ffffff 100%);
    transform: translateX(5px);
    box-shadow: 0 2px 12px rgba(141, 208, 231, 0.2);
}

.vc_tta-accordion .vc_tta-panel-heading {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
}

.vc_tta-accordion .vc_tta-panel-title {
    background: none;
    border: none;
    padding: 20px 25px;
    margin: 0;
    position: relative;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.vc_tta-accordion .vc_tta-panel-title a {
    color: var(--blue);
    font-weight: 600;
    font-size: 1.1rem;
    text-decoration: none;
    display: block;
    padding-right: 50px;
    transition: color 0.3s ease;
    border-bottom: none !important;
    outline: none !important;
}

.vc_tta-accordion .vc_tta-panel-title a:hover,
.vc_tta-accordion .vc_tta-panel-title a:focus {
    color: var(--blue-light);
    text-decoration: none;
    border-bottom: none !important;
    outline: none !important;
}

.vc_tta-accordion .vc_tta-panel.vc_active .vc_tta-panel-title a {
    color: var(--blue);
    font-weight: 700;
}

/* Custom accordion icon */
.vc_tta-accordion .vc_tta-panel-title a {
	padding-left: 20px !important;
	padding-right: 40px !important;
}

.vc_tta-accordion .vc_tta-panel-title a .vc_tta-controls-icon {
	display: none !important;
}

.vc_tta-accordion .vc_tta-panel-title a::after {
    content: '+';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--blue);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.vc_tta-accordion .vc_tta-panel.vc_active .vc_tta-panel-title a::after {
    content: '−';
    transform: translateY(-50%) rotate(180deg);
    color: var(--blue);
}

/* Wave effect on active accordion */
.vc_tta-accordion .vc_tta-panel.vc_active .vc_tta-panel-title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--blue) 0%, var(--blue-light) 100%);
    border-radius: 0 2px 2px 0;
    animation: wave-pulse 2s ease-in-out infinite;
}

.vc_tta-accordion .vc_tta-panel-body {
    border: none;
    padding: 0 25px 25px 25px;
    background: rgba(141, 208, 231, 0.02);
    position: relative;
}

.vc_tta-accordion .vc_tta-panel-body .wpb_wrapper {
    color: #555;
    line-height: 1.6;
    font-size: 1rem;
}

.vc_tta-accordion .vc_tta-panel-body::before {
    content: '';
    position: absolute;
    top: 0;
    left: 25px;
    right: 25px;
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(141, 208, 231, 0.3) 20%,
        rgba(141, 208, 231, 0.5) 50%,
        rgba(141, 208, 231, 0.3) 80%,
        transparent 100%);
}

@keyframes wave-pulse {
    0%, 100% {
        opacity: 1;
        transform: scaleY(1);
    }
    50% {
        opacity: 0.7;
        transform: scaleY(0.95);
    }
}

/* Custom Table Styles */
table {
    width: 100%;
    border-collapse: collapse;
    margin: 25px 0;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(141, 208, 231, 0.15);
    background: #ffffff;
    font-family: inherit;
}

table thead {
    background: linear-gradient(135deg, var(--blue) 0%, var(--blue-light) 100%);
    color: white;
    position: relative;
}

table thead::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.5) 20%,
        rgba(255, 255, 255, 0.8) 50%,
        rgba(255, 255, 255, 0.5) 80%,
        transparent 100%);
}

table th {
    padding: 18px 20px;
    text-align: left;
    font-weight: 600;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none;
    position: relative;
}

table th:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 25%;
    bottom: 25%;
    width: 1px;
    background: rgba(255, 255, 255, 0.3);
}

table tbody tr {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border-bottom: 1px solid rgba(141, 208, 231, 0.4);
}

table tbody tr:nth-child(even) {
    background: rgba(141, 208, 231, 0.03);
}

table tbody tr:hover {
    background: linear-gradient(135deg, rgba(141, 208, 231, 0.08) 0%, rgba(226, 248, 255, 0.1) 100%);
    transform: translateX(3px);
    box-shadow: 0 2px 12px rgba(141, 208, 231, 0.2);
}

table td {
    padding: 16px 20px;
    color: #555;
    font-size: 0.95rem;
    line-height: 1.5;
    border: none;
    position: relative;
    transition: color 0.3s ease;

	border: 0 !important;
}

table tbody tr:hover td {
    color: #333;
}

/* Table responsive wrapper */
.table-responsive {
    overflow-x: auto;
    margin: 25px 0;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(141, 208, 231, 0.15);
}

.table-responsive table {
    margin: 0;
    box-shadow: none;
    border-radius: 0;
}

/* Striped table variant */
table.table-striped tbody tr:nth-child(odd) {
    background: rgba(141, 208, 231, 0.05);
}

table.table-striped tbody tr:nth-child(even) {
    background: #ffffff;
}

/* Bordered table variant */
table.table-bordered {
    border: 2px solid rgba(141, 208, 231, 0.2);
}

table.table-bordered th,
table.table-bordered td {
    border-right: 1px solid rgba(141, 208, 231, 0.1);
}

table.table-bordered th:last-child,
table.table-bordered td:last-child {
    border-right: none;
}

/* Small table variant */
table.table-sm th,
table.table-sm td {
    padding: 12px 15px;
    font-size: 0.9rem;
}

/* Dark table variant */
table.table-dark {
    background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%);
    color: white;
}

table.table-dark thead {
    background: linear-gradient(135deg, #1a252f 0%, #2c3e50 100%);
}

table.table-dark tbody tr {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

table.table-dark tbody tr:nth-child(even) {
    background: rgba(255, 255, 255, 0.05);
}

table.table-dark tbody tr:hover {
    background: rgba(141, 208, 231, 0.2);
}

table.table-dark td {
    color: #ecf0f1;
}

/* Mobile responsive tables */
@media (max-width: 768px) {
    table {
        font-size: 0.9rem;
    }

    table th,
    table td {
        padding: 12px 10px;
    }

    .table-responsive {
        margin: 20px -15px;
        border-radius: 0;
    }

    .table-responsive table {
        min-width: 600px;
    }
}

@media (max-width: 400px) {
    .cloud-sun {
        gap: 10px;
    }
}

@media (max-width: 350px) {
    .cloud-sun {
        gap: 0;
    }
}
