/*

	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;
}

/* ALTCHA dezenter */
.booking-form .altcha {
	border: none;
	background: transparent;
	padding: 10px 0;
}

/* 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 {
    margin: 30px auto;
    text-align: center;
}

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

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

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

.booking-form .altcha {
    margin: 20px auto;
}

.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 35px;
    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;
}

.contact-section .altcha {
    margin-bottom: 20px;
}

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

/* 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-altcha {
    font-size: 16px;
}
.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
======================================== */

.site-footer {
    background: #9a9690;
    padding: 60px 30px 35px;
    text-align: center;
}

/* Logo */
.site-footer .footer-logo {
    margin: 0 auto 35px;
    text-align: center;
}

.site-footer .footer-logo img {
    width: 160px;
    height: auto;
    display: inline-block;
}

/* Links */
.site-footer .footer-link {
    display: inline-block;
    margin: 0 16px;
}

.site-footer .footer-link a {
    color: #fff;
    text-decoration: none;
    font-size: 15px;
    letter-spacing: 0.5px;
    transition: opacity 0.2s ease;
}

.site-footer .footer-link a:hover {
    opacity: 0.6;
}

/* Smartphone */
@media (max-width: 600px) {

    .site-footer {
        padding: 45px 20px 30px;
    }

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

    .site-footer .footer-link {
        display: block;
        margin: 12px 0;
    }
}

.site-footer .social-icon img {
    width: 27px;
    height: 27px;
    object-fit: contain;
    display: block;
}

.site-footer .social-icon {
    display: inline-block;
    margin: 0 14px;
    vertical-align: middle;
    transition: opacity 0.2s ease;
}

.site-footer .social-icon:hover {
    opacity: 0.6;
}

.site-footer .footer-link {
    display: inline-block;
    margin: 0 14px;
    vertical-align: middle;
}

