/*

	01 -- font

*/

/* [start] 01 -- font  */

/* unlock-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: 'Unlock';
  font-style: normal;
  font-weight: 400;
  src: url('/files/fonts/unlock/unlock-v28-latin-regular.eot'); /* IE9 Compat Modes */
  src: url('/files/fonts/unlock/unlock-v28-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
	   url('/files/fonts/unlock/unlock-v28-latin-regular.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
	   url('/files/fonts/unlock/unlock-v28-latin-regular.woff') format('woff'), /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+, iOS 5+ */
	   url('/files/fonts/unlock/unlock-v28-latin-regular.ttf') format('truetype'), /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
	   url('/files/fonts/unlock/unlock-v28-latin-regular.svg#Unlock') format('svg'); /* Legacy iOS */
}

h1, .h1,
h2, .h2,
.headline{
	font-family: 'Unlock';
}

/* [end] 01 -- font  */


.bgWrapper .backgroundImage {
	width: 100%;
}

.bgWrapper .backgroundImage .image_container {
	width: 100%;
	margin: 0;
}

.bgWrapper .backgroundImage img {
	display: block;
	width: 100%;
	height: auto;
}

.bgWrapper {
	position: relative;
	height: 700px;
	overflow: hidden;
}

.bgWrapper .backgroundImage {
	width: 100%;
	height: 100%;
}

.bgWrapper .backgroundImage .image_container {
	width: 100%;
	height: 100%;
	margin: 0;
}

.bgWrapper .backgroundImage img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}


.bgWrapper {
	position: relative;
	height: 700px;
	overflow: hidden;
}

.bgWrapper .backgroundImage {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.bgWrapper .backgroundImage .image_container {
	width: 100%;
	height: 100%;
	margin: 0;
}

.bgWrapper .backgroundImage img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.bgWrapper .bgWrapperInner {
	position: relative;
	z-index: 2;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.bgWrapper::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.15);
	z-index: 1;
	pointer-events: none;
}

.bgWrapper .bgWrapperInner {
	position: relative;
	z-index: 2;
}

.hero-title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.5rem, 4vw, 4.5rem);
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1.05;
	text-transform: uppercase;
}

.hero-subtitle {
	margin: 22px 20px 0;
	font-size: clamp(1rem, 1.25vw, 1.25rem);
	color: #fff;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-shadow: 0 1px 4px rgba(0,0,0,.35);
}

.hero-button {
	margin-top: 38px;
}

.welcome-section {
	max-width: 900px;
	margin: 0 auto;
	padding: 40px 40px 80px;
	text-align: center;
}

.welcome-section h2 {
	margin: 0 0 35px;
	font-size: clamp(2rem, 3vw, 3rem);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: 0.02em;
}

.welcome-section .rte {
	max-width: 850px;
	margin: 0 auto;
	font-size: 1.1rem;
	line-height: 1.8;
}

.welcome-section .rte p {
	margin: 0;
}

@media (max-width: 768px) {
	.welcome-section {
		padding: 60px 24px;
	}

	.welcome-section .rte {
		font-size: 1rem;
		line-height: 1.7;
	}
}


/* für Smartphones */
@media (max-width: 768px) {
	.bgWrapper {
		height: 500px;
	}
}

@media (max-width: 768px) {
	.bgWrapper {
		height: 500px;
	}
}


.hero-button a {
	display: inline-block;
	padding: 14px 30px;
	color: #fff;
	background: transparent;
	border: 1px solid #fff;
	text-decoration: none;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	transition: all 0.3s ease;
}

.hero-button a:hover {
	background: #fff;
	color: #222;
}

/* Hero Button */
.hero-button {
	margin-top: 32px;
}

.gallery-image img {
	display: block;
	width: 100%;
	height: 420px;
	object-fit: cover;
}

@media (max-width: 768px) {
	.gallery-image img {
		height: 320px;
	}
}

/* Apartment Bildergalerie */
.apartment-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	max-width: 1200px;
	margin: -35px auto 100px;
	padding: 0 30px;
	box-sizing: border-box;
}

.apartment-gallery .gallery-image {
	margin: 0;
}

.apartment-gallery .gallery-image figure {
	margin: 0;
	overflow: hidden;
}

.apartment-gallery .gallery-image img {
	display: block;
	width: 100%;
	height: 380px;
	object-fit: cover;
}

/* Tablet */
@media (max-width: 900px) {
	.apartment-gallery {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Smartphone */
@media (max-width: 600px) {
	.apartment-gallery {
		grid-template-columns: 1fr;
		padding: 0 20px;
	}

	.apartment-gallery .gallery-image img {
		height: 300px;
	}
}

/* Bereich: Die Wohnung */
.apartment-section {
	max-width: 900px;
	margin: 100px auto 60px;
	padding: 0 30px;
	text-align: center;
}

.apartment-section h2 {
	font-size: 42px;
	font-weight: 400;
	margin: 0 0 35px;
}

.apartment-section p {
	font-size: 18px;
	line-height: 1.7;
	margin: 0 0 18px;
}

/* Auf einen Blick */
ccccc.apartment-facts::before {
	content: "";
	display: block;
	width: 60px;
	height: 1px;
	background: #cbb99f;
	margin: 0 auto 35px;
}

.apartment-facts {
   max-width: 1100px;
	margin: 0 auto 100px;
	padding: 55px 30px 0;
	text-align: center;
}

.apartment-facts h3 {
	font-size: 28px;
	font-weight: 400;
	margin: 0 0 30px;
}

.apartment-facts p {
	font-size: 17px;
	line-height: 1.7;
	letter-spacing: 0.03em;
	margin: 0;
}

.brand-wave {
	text-align: center;
	margin: 70px auto 20px;
}

.brand-wave img {
	width: 115px;
	height: auto;
}

/* Wohnen & Entspannen */

.living-section {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 60px;

	max-width: 1140px;
	margin: 80px auto 100px;
	padding: 0 30px;
	box-sizing: border-box;
}

.living-section h2 {
	font-size: 38px;
	font-weight: 400;
	margin: 0 0 25px;
}

.living-section .content-text p {
	margin: 0 0 12px;
	line-height: 1.55;
}

.living-section .content-text p:first-of-type {
	margin-bottom: 28px;
	font-weight: 600;
}

.living-section .content-image,
.living-section .content-image figure {
	margin: 0;
}

.living-section .content-image img {
	display: block;
	width: 100%;
	height: 520px;
	object-fit: cover;
}

@media (max-width: 768px) {
	.living-section {
		grid-template-columns: 1fr;
		gap: 35px;
		margin: 60px auto 80px;
		padding: 0 24px;
	}

	.living-section .content-image img {
		height: 360px;
	}
}

.living-section .content-text {
	align-self: center;
}

.living-section h2 {
	font-size: 40px;
	font-weight: 400;
	margin: 0 0 24px;
}

.living-section .content-text p {
	margin: 0 0 14px;
	line-height: 1.55;
}

.living-section .content-text p:first-of-type {
	margin-bottom: 30px;
	font-weight: 500;
}

.living-section .content-image img {
	width: 100%;
	height: 520px;
	object-fit: cover;
}

/* Kontaktbereich */

.contact-section {
	background: #f4efe7;
	text-align: center;
	padding: 90px 30px;
	margin-top: 80px;
}

.contact-section h2 {
	font-size: 38px;
	font-weight: 400;
	margin: 0 0 25px;
}

.contact-section .rte {
	max-width: 700px;
	margin: 0 auto;
}

.contact-section p {
	font-size: 17px;
	line-height: 1.7;
	margin: 0 0 8px;
}

/* Kontakt Button */

.contact-section .contact-button {
	margin-top: 30px;
}

.contact-section .contact-button a {
	display: inline-block;
	padding: 15px 32px;

	border: 1px solid #292929;
	color: #1f2a16;
	background: transparent;

	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-size: 13px;
	font-weight: 600;

	transition: all 0.25s ease;
}

.contact-section .contact-button a:hover {
	background: #292929;
	color: #ffffff;
}

.contact-section {
	padding: 80px 40px;
}

.contact-section h2 {
	margin-bottom: 25px;
}


/* Baltic Garden Stay - Kontaktformular */

.booking-form {
	max-width: 520px;
	margin: 40px auto 0;
}

.booking-form .widget {
	margin-bottom: 22px;
}

.booking-form label {
	display: block;
	text-align: left;
	margin-bottom: 8px;
	font-size: 16px;
}

.booking-form input[type="text"],
.booking-form input[type="email"],
.booking-form textarea {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid #d8d1c7;
	background: #fff;
	font-family: inherit;
	font-size: 16px;
	box-sizing: border-box;
}

.booking-form textarea {
	min-height: 140px;
}

.booking-form input:focus,
.booking-form textarea:focus {
	outline: none;
	border-color: #444;
}

/* Submit Button */

.booking-form button,
.booking-form input[type="submit"] {
	background: #3f3f3f;
	color: #fff;
	border: none;
	padding: 14px 32px;
	font-size: 15px;
	letter-spacing: .04em;
	cursor: pointer;
	transition: all .3s ease;
}

.booking-form button:hover,
.booking-form input[type="submit"]:hover {
	background: #222;
}

/* ALTCHA */
.booking-form .altcha {
	margin: 20px auto;
	padding: 10px 0;
	border: none;
	background: transparent;
	text-align: center;
}

/* Pflichtfeld Text ausblenden */
.booking-form label .mandatory {
	font-size: 0;
}

.booking-form label .mandatory::after {
	content: "*";
	font-size: 16px;
}

/* Datumfelder */
.booking-form input[type="date"] {
	width: 100%;
	max-width: 100%;
	padding: 14px 16px;
	border: 1px solid #d8d1c7;
	background: #fff;
	font-family: inherit;
	font-size: 16px;
	box-sizing: border-box;
}


.booking-form .altcha-box {
	border: none;
}

.invisible { display: none; position: absolute; }

.booking-form .widget {
	margin-bottom: 18px;
}


.booking-form input[type="submit"] {
	transition: background-color .3s ease;
}

.booking-form input[type="submit"]:hover {
	background-color: #222;
}

.contact-section .formbody label {
	margin-bottom: 8px;
}

.contact-section input,
.contact-section textarea {
	border: 1px solid #ddd;
	padding: 15px;
	font-size: 16px;
}

.contact-section button {
	background:#444;
	color:white;
	padding:16px 35px;
	border:none;
	letter-spacing:0.5px;
}

.contact-section button:hover {
	background:#666;
}

/* ALTCHA an das Design anpassen */
.contact-section .altcha {
	margin: 25px auto 20px;
	padding: 0;
	border: none;
	background: transparent;
	font-size: 16px;
}

/* Checkbox */
.contact-section .altcha input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin-right: 10px;
	vertical-align: middle;
}

/* Text */
.contact-section .altcha label {
	font-size: 16px;
	color: #333;
}

/* ALTCHA passend zum Baltic Garden Stay Design */
.contact-section .widget-altcha {
	display: flex;
	justify-content: center;
	margin: 25px 0 30px;
	font-size: 16px;
}

/* ALTCHA Box entfernen */
.contact-section altcha-widget {
	--altcha-border-width: 0;
	--altcha-border-color: transparent;
	--altcha-color: #333;
	--altcha-bg: transparent;
	font-family: inherit;
}

/* Checkbox + Text */
.contact-section .widget-submit {
	text-align: center;
	margin-top: 10px;
}

/* Bestätigung nach Formularversand */
.contact-section .form-confirmation {
	max-width: 700px;
	margin: 50px auto;
	padding: 35px 45px 30px;
	background: #f5f1eb;
	border: 1px solid #e5ddd2;
	text-align: center;
}

.contact-section .form-confirmation h2 {
	margin-bottom: 20px;
}

.contact-section .form-confirmation h3 {
	font-size: 26px;
	margin-bottom: 25px;
	font-weight: 600;
}

.contact-section .form-confirmation p {
	margin-bottom: 15px;
}


/* ========================================
   FOOTER – Desktop dreispaltig
======================================== */

.site-footer {
    padding: 34px 40px;
    background: #9a9690;
}

.site-footer .footer-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    width: min(1120px, 100%);
    margin: 0 auto;
}

/* Logo links */

.site-footer .footer-brand {
    justify-self: start;
}

.site-footer .footer-brand img {
    display: block;
    width: 125px;
    height: auto;
}

/* Social Icons mittig */

.site-footer .footer-socials {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 26px;
}

.site-footer .footer-socials a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 29px;
    height: 29px;
    transition:
        opacity 0.2s ease,
        transform 0.2s ease;
}

.site-footer .footer-socials img {
    display: block;
    width: 29px;
    height: 29px;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.site-footer .footer-socials a:hover {
    opacity: 0.65;
    transform: translateY(-2px);
}

/* Impressum rechts */

.site-footer .footer-legal {
    justify-self: end;
}

.site-footer .footer-legal a {
    color: #fff;
    font-size: 13px;
    letter-spacing: 0.4px;
    text-decoration: none;
    opacity: 0.75;
    transition: opacity 0.2s ease;
}

.site-footer .footer-legal a:hover {
    opacity: 1;
}

/* Smartphone */

@media (max-width: 700px) {
    .site-footer {
        padding: 30px 20px 24px;
    }

    .site-footer .footer-inner {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 20px;
    }

    .site-footer .footer-brand,
    .site-footer .footer-socials,
    .site-footer .footer-legal {
        justify-self: center;
    }

    .site-footer .footer-brand img {
        width: 110px;
    }

    .site-footer .footer-legal {
        margin-top: -4px;
    }
}

/* Impressum */

.site-footer .footer-imprint {
	display: inline-block;
	margin-top: 12px;
	color: #fff;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.4px;
	text-decoration: none;
	opacity: 0.75;
	transition: opacity 0.2s ease;
}

.site-footer .footer-imprint:hover {
	opacity: 1;
}

/* Smartphone */

@media (max-width: 600px) {
	.site-footer {
		padding: 24px 18px 20px;
	}

	.site-footer .footer-logo img {
		width: 104px;
	}

	.site-footer .footer-navigation {
		margin-top: 12px;
	}

	.site-footer .footer-imprint {
		margin-top: 10px;
	}
}
