.header-book-now{
	max-width: 960px !important;
}
.mobile-searchbar .sfm__stack .sfm__field:nth-child(1)  .sfm__input{
	width: 100%;
}

.posts__fav.is-active svg .heart-fill {
    fill: rgba(97, 80, 38, 1);
}

.post-type-archive-ferienwohnungen .widget-area-header {
	margin-bottom: 0;
}

.heart-stroke {
	fill: none;
	stroke: var(--heart-stroke, var(--color-primary)) !important;
}

.hero-all-btn svg path {
	fill: #fff;
	stroke: #fff;
}

.booking-widget-aside {
	position: sticky;
	top: 30px;
	margin-top: 24px;
	margin-left: 28px;
}

.prop__fav span {
	color: #fff !important;
}

.hero__inner {
	max-width: 900px;
	margin: auto;
}

.prop-gallery-hidden {
	display: none !important;
}

.widget-area-header .wp-container-core-group-is-layout-11d2312b> :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: 100% !important;
	margin-bottom: 2rem;
}

.widget-area-header {

	margin-bottom: 4rem;
}

.prop-archive-search .sf__submit .sf__btn {
	background: #64512C !important;
}

.btn-filter,
.sf__submit .sf__btn,
.sf__wrap {
	min-height: 48px;
	max-height: 48px !important;

}

form.sf label {
	color: #64512C;
}

.btn-filter {

	background: #64512C !important;
	border: 0 !important;
	color: #fff;
}

.btn-filter path {
	stroke: #fff;
}

.sf__wrap {
	max-height: 44px;
	background: #eeecea;
}

.sf__submit .sf__btn {
	background: #64512C;
	color: #fff;
	border: 0;
	padding: 0 26px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	height: 46px;
}

.mobile-searchbar .sfm__title {
	margin: 0 !important;
}

.page-id-6183 .header-container {
	margin-bottom: 40px !important;
}

.ant-card {
	border-radius: 0 !important;
	background-color: #E8E4DA !important;
}

.ant-steps .ant-steps-item-process .ant-steps-item-icon {
	background-color: var(--color-primary) !important;
	border-color: var(--color-primary) !important;
}

.ant-btn-icon svg {
	fill: var(--color-primary) !important;
}

.ant-btn:hover .ant-btn-icon svg {
	fill: #fff !important;
}

.ant-picker-large {
	padding: 13px 11px !important;
}

.ant-picker-outlined:hover,
.ant-input-outlined:hover {
	border-color: var(--color-primary) !important;
}

.page-id-6183 hr,
.ant-divider {
	border-bottom: 1px solid var(--color-primary) !important;
	border-block-color: var(--color-primary) !important;
}

.ant-btn-variant-outlined,
.ant-btn-variant-dashed {
	border-color: var(--color-primary);
	background: #ffffff;
	border-radius: 0px;
}

.ant-btn-variant-outlined:hover,
.ant-btn-variant-dashed:hover {
	color: #fff !important;
	background: var(--color-primary) !important;
	border-color: var(--color-primary) !important;

}

h2.ant-typography {
	font-family: var(--font-family-headline) !important;
	color: var(--color-primary);
}

h4.ant-typography {
	color: var(--color-secondary);
	font-family: var(--font-family-body);
}

.ant-col {
	color: var(--color-secondary);
	font-family: var(--font-family-body);
}

.ant-steps .ant-steps-item-finish .ant-steps-item-icon {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
}

.ant-steps .ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon {
	color: #fff;
}

.ant-btn-variant-solid {
	color: #fff;
	background: var(--color-primary);
	border-radius: 0;
}

.ant-btn-variant-solid:hover {
	box-shadow: 0 0 16px rgba(0, 0, 0, 0.33);
}

.ant-btn-variant-solid:hover {
	color: #fff !important;
	background: var(--color-primary) !important;

}

.ant-btn.ant-btn-round.ant-btn-lg {
	border-radius: 0;
	padding-inline: 15px;
}

.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role='button']:hover .ant-steps-item-icon {
	border-color: var(--color-primary) !important;
}

.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role='button']:hover .ant-steps-item-icon .ant-steps-icon {
	color: #fff !important;
}

.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role='button']:hover .ant-steps-item-icon {
	border-color: var(--color-primary) !important;
}

.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role='button']:hover .ant-steps-item-title,
:where(.css-1j6rrbd).ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role='button']:hover .ant-steps-item-subtitle,
:where(.css-1j6rrbd).ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role='button']:hover .ant-steps-item-description {
	color: var(--color-primary) !important;
}

:where(.css-1j6rrbd).ant-steps .ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title::after {
	background-color: var(--color-primary) !important;
}

.ant-input-number-outlined:focus,
.ant-input-number-outlined:focus-within,
.ant-input-number-outlined:hover {
	border-color: var(--color-primary) !important;
}

.ant-picker-dropdown .ant-picker-cell-in-view.ant-picker-cell-selected:not(.ant-picker-cell-disabled) .ant-picker-cell-inner,
:where(.css-1j6rrbd).ant-picker-dropdown .ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-disabled) .ant-picker-cell-inner,
:where(.css-1j6rrbd).ant-picker-dropdown .ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-disabled) .ant-picker-cell-inner {

	background: var(--color-primary) !important;
}

.ant-picker-dropdown .ant-picker-cell-in-view.ant-picker-cell-in-range:not(.ant-picker-cell-disabled):before,
.ant-picker-dropdown .ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-disabled):before,
.ant-picker-dropdown .ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-disabled):before {
	background: var(--wp--preset--color--light-green) !important;
	border-color: var(--wp--preset--color--light-green) !important;
	box-shadow: none !important;
}

.ant-picker,
.ant-input-number {
	border-radius: 0 !important;
}
.prop-grid,
.controls__grid,
.grid,
.container.backlink-wrapper{
	max-width: 100%!important;
}
@media (min-width: 1500px) {
	.prop-grid,
	.controls__grid,
	.grid,
	.container.backlink-wrapper {
		max-width: 1800px !important;
	}
}

.grid {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;

}

.insurance-list li::marker {
	color: var(--color-primary) !important;
}

:where(.css-1j6rrbd).ant-radio-wrapper .ant-radio-checked::after {

	border: 1px solid var(--color-primary) !important;

}

.ant-radio-wrapper .ant-radio-checked .ant-radio-inner {
	border-color: var(--color-primary) !important;
	background-color: var(--color-primary) !important;
}

.ant-checkbox-checked .ant-checkbox-inner {
	background-color: var(--color-primary) !important;
	border-color: var(--color-primary) !important;
}

input[type='text'],
input[type='password'],
input[type='search'],
input[type='email'],
input[type='number'],
input[type='tel'],
input[type='url'],
input[type='date'],
input[type='file'],
textarea {
	border-radius: 0;
	max-height: 52px;
}

.ant-picker-dropdown .ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner::before {
	border: 1px solid var(--color-primary) !important;
}

.ant-select-outlined.ant-select-status-error:not(.ant-select-customize-input) .ant-select-selector,
.ant-select-single.ant-select-lg {
	min-height: 52px !important;
}

:where(.css-1j6rrbd).ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector {
	border-radius: 0;
}

:where(.css-1j6rrbd).ant-select-outlined:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector {
	border-color: var(--color-primary) !important;
}

.ant-radio-wrapper:hover .ant-radio-wrapper,
.ant-radio-wrapper:hover .ant-radio-inner {
	border-color: var(--color-primary) !important;
}

.single-ferienwohnungen .header-book-now,
.page-id-6183 .header-book-now {
	display: none;
}

.mobile-searchbar {
	position: relative;
	z-index: 5;
}

.mobile-searchbar .sfm__title {
	margin: 0 0 18px;
	text-align: center;
	color: #64512C;
	line-height: 1.1;

	font-family: var(--font-family-headline);
	padding-bottom: 20px;
	font-size: 36px;
}

.mobile-searchbar .sfm__stack {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	align-items: stretch;
}

.mobile-searchbar .sfm__field {
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-height: 48px;
	padding: 10px 14px 10px;
	background: #eeecea;
	border: 1px solid rgba(40, 54, 75, .08);
}

.mobile-searchbar .sfm__label {
	width: 80px;
	min-width: 0;
	border: 0;
	outline: 0;
	background: transparent;
	color: #64512C;
	font: inherit;
	font-size: 16px;
	line-height: 1.2;
	padding: 0;
	box-shadow: none;
}

.mobile-searchbar .sfm__control {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.mobile-searchbar .sfm__control svg,
.seg--persons svg,
.sf__seg-dates svg {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
}

.mobile-searchbar .sfm__control svg path,
.seg--persons svg path,
.sf__seg-dates svg path {
	stroke: #64512C;
}

.mobile-searchbar .sfm__input,
.mobile-searchbar .sfm__select {
	width: 64%;
	min-width: 0;
	border: 0;
	outline: 0;
	background: transparent;
	color: #64512C;
	font: inherit;
	font-size: 16px;
	line-height: 1.2;
	padding: 0;
	box-shadow: none;
}

.mobile-searchbar .sfm__input::placeholder {
	color: #64512C;
	opacity: 1;
}

.mobile-searchbar .sfm__select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	cursor: pointer;
}

.mobile-searchbar .sfm__submit {
	width: 100%;
	height: 100%;
	border: 0;
	font-size: 21px;
	border-radius: 6px;
	background: #64512C;
	color: #fff;
	line-height: 1;
	cursor: pointer;
	transition: opacity .2s ease;
}

.mobile-searchbar .sfm__submit:hover,
.mobile-searchbar .sfm__submit:focus,
.mobile-searchbar .sfm__submit:focus-visible {
	background: #64512C;
	color: #fff;
	opacity: .92;
	outline: 0;
	box-shadow: none;
}

.mobile-searchbar .sfm__field,
.mobile-searchbar .sfm__field:hover,
.mobile-searchbar .sfm__field:focus-within {
	box-shadow: none;
}

@media (max-width: 1279px) {
	.mobile-searchbar .sfm__wrap {
		width: min(900px, calc(100vw - 32px));
		padding: 18px 16px 20px;
		margin: 0 auto 0;
	}

	.mobile-searchbar .sfm__stack {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.mobile-searchbar .sfm__field--submit {
		grid-column: 1 / -1;
	}
}

@media (max-width: 767px) {
	.mobile-searchbar .sfm__stack {
		grid-template-columns: 1fr;
	}

	.mobile-searchbar .sfm__wrap {
		width: 100%;
	}

	.mobile-searchbar .sfm__field,
	.mobile-searchbar .sfm__submit {
		height: 48px;
		padding: 0 10px;
		min-height: unset;
	}

	.sf__submit .sf__btn {

		width: 100%;
		justify-content: center;
	}
}

.mobile-searchbar .sfm__field--submit {
	background: transparent;
	border: 0;
	padding: 0;
}

/* Flatpickr Optik passend zum Suchfeld */
.flatpickr-calendar {

	box-shadow: 0 10px 30px rgba(0, 0, 0, .12) !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
	background: #75985c !important;
	border-color: #75985c !important;
	color: #fff !important;
}

.flatpickr-day.inRange {
	background: #aabd92 !important;
	border-color: #aabd92 !important;
	box-shadow: none !important;
}


/* single ferienwohnungen */

:root {
	--hero-image-height: 60vh;
}

.header-book-now {

	z-index: 999;
}

/* ===== Layout Wrapper ===== */
.prop-wrap {
	width: 100%;
	max-width: none !important;
	padding: 0;
	margin: 0;
	background-color: var(--wp--preset--color--green);
}

/* Full-bleed Background für prop-grid */
.prop-grid-bg {
	position: relative;
	width: 100%;
	left: auto;
	transform: none;
	background: #ffffff;
	padding: 24px 0;
	/* optional: vertikale Luft */
}

.prop-grid {
	max-width: 1800px;
	/* wie prop-wrap */
	margin: 0 auto;
	padding: 0 26px;
	/* wie prop-wrap padding */
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	align-items: flex-start;
}

.prop-grid>* {
	min-width: 0;
}

.hero-wrapper {
	position: relative;
	z-index: 0;
	padding: 24px 0 32px;
}


/* ===== Full-bleed Background Wrapper ===== */
.full-width-bg {
	width: 100%;
	margin-left: 0;
	transform: none;
	background-color: #E8E4DA;
	margin-bottom: 0;
}

.backlink-wrapper {
	margin: auto;
	justify-content: space-between;
	display: flex;
	padding: 3rem 26px 0;
}
.backlink-wrapper a, .backlink-wrapper button {
	margin: 0;
}

.backlink,
.prop__fav {
	background: #64512C !important;
	color: #fff !important;
	font-weight: 400;
	border: 0;
	padding: 1rem !important;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	height: 46px;
}

/* ===== HERO Full Width ===== */


.hero-wrapper::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #E8E4DA;
	z-index: -1;
	width: 100%;
	left: 0;
	transform: none;
}

.hero-inner {
	max-width: 1800px;
	margin: 0 auto;
}

/* ===== HERO 4-Slot Rotator (statisches Layout, Bilder rotieren) ===== */
.hero-rotator {
	width: 100%;
}

.hero-rotator-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.8fr) 56px minmax(0, 1.4fr) 0;
	align-items: stretch;
}

.hero-nav {
	display: flex;
	align-items: center;
	justify-content: center;
}

.hero-nav--next {
	width: 56px;
	margin-left: 12px;
}

.hero-arrow,
.hero-arrow:focus {
	width: 44px;
	height: 44px;
	background: #fff;
	border: 1px solid var(--ast-global-color-0);
	color: #111;
	box-shadow: 0 0 16px rgba(0, 0, 0, .33);
	cursor: pointer;
	font-size: 22px;
	line-height: 1;
	font-weight: 700;
	padding: 0;
}

.hero-arrow:hover {
	background: var(--ast-global-color-0) !important;
	border: 1px solid var(--ast-global-color-0);
}

.hero-arrow:active {
	transform: scale(.98);
	background: var(--ast-global-color-0) !important;
	border: 1px solid var(--ast-global-color-0);
}

.hero-slot {
	overflow: hidden;
	background: #000;
	position: relative;
}

.hero-slot a {
	display: block;
	width: 100%;
	height: var(--hero-image-height);
}

.hero-slot img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	max-height: var(--hero-image-height);
}


.hero-side {
	min-width: 0;
	max-height: var(--hero-image-height);
	margin-left: 24px;
}

.hero-slot--big {
	margin-right: 24px;
}

.hero-mosaic {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	grid-template-rows: 1fr 1fr;
	gap: 14px;
	width: 100%;
	height: 100%;
}

.hero-slot--tall {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.hero-slot--small {
	grid-column: 2;
}

.hero-slot::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .15);
	opacity: 0;
	transition: opacity .2s;
	pointer-events: none;
}

.hero-slot:hover::after {
	opacity: 1;
}

@media (max-width: 900px) {
	.hero-rotator-grid {
		display: flex;
		flex-wrap: wrap;
		gap: 12px 0;
	}


	.hero-nav {
		justify-content: flex-start;
		gap: 12px;
		width: 50%;
	}

	.hero-slot--big,
	.hero-mosaic {
		margin: 0 !important;
	}

	.hero-side {
		display: none;
	}

	.hero-nav--next {
		justify-content: flex-end;
		margin: 0;
	}
}

/* ===== Titel + Button ===== */
.title-row {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin: 50px 0 18px 0;
	flex-wrap: wrap;
	align-items: start;
}

.prop-title {
	margin: 0;
	font-size: 2.4rem;
	line-height: 1.2;
}

.prop-subtitle {
	margin: 10px 0;
}

.hero-all-btn {
	background: #64512C !important;
	color: #fff !important;
	font-weight: 400;
	border: 0;
	padding: 1rem !important;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	height: 46px;
}

@media (max-width: 600px) {
	.title-row {
		flex-direction: column;
		align-items: flex-start;
	}
}

.badges {
	display: flex;
	gap: 18px;
	margin: .75rem 0 0;
	flex-wrap: wrap;
}

.badge {
	background: #64512C !important;
	color: #fff !important;
	font-weight: 400;
	border: 0;
	padding: 1rem !important;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	height: 46px;
}

/* ===== Sticky Card / Content ===== */
.sticky-card {
	position: sticky;
	border: 1px solid var(--wp--preset--color--green);
	padding: 16px 18px;
	background: #E8E4DA;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .06);
}

/* Booking widget element styles */
.booking-date-range-title {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 600;
}

.booking-date-range-subtitle {
	color: #666;
	font-size: 0.85rem;
}

.booking-calendar-input {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid rgba(0, 0, 0, .1);
	font-size: 15px;
	margin-bottom: 16px;
	background: #fff;
	cursor: pointer;
}

.booking-guests-display {
	padding: 14px 16px;
	border: 1px solid rgba(0, 0, 0, .1);
	margin-bottom: 16px;
	background: #fff;
	cursor: pointer;
}

.booking-guests-display:hover,
.booking-calendar-input:hover {
	border-color: #aabd92;
}

.booking-guests-text {
	font-weight: 500;
}

.booking-guests-dropdown {
	display: none;
	padding: 16px;
	border: 1px solid rgba(0, 0, 0, .1);
	background: #fff;
	margin-bottom: 16px;
}

.booking-guests-dropdown.is-open {
	display: block;
}

.booking-guest-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px 0;
}

.booking-guest-row+.booking-guest-row {
	border-top: 1px solid rgba(0, 0, 0, .08);
}

.booking-guest-label {
	font-weight: 500;
}

.booking-guest-controls {
	display: flex;
	align-items: center;
	gap: 12px;
}

.booking-guest-btn {
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid rgba(0, 0, 0, .2);
	background: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	transition: all 0.2s;
}

.booking-guest-btn:hover {
	background: #aabd92;
	border-color: #aabd92;
}

.booking-guest-btn:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}

.booking-guest-input {
	width: 40px;
	text-align: center;
	border: none;
	background: transparent;
	font-weight: 600;
}

.booking-price-section {
	margin: 20px 0;
}

.booking-price-title {
	margin: 0 0 12px;
	font-size: 1rem;
	font-weight: 600;
}

.booking-price-breakdown {
	margin-bottom: 16px;
}

.booking-price-divider {
	border: none;
	border-top: 1px solid rgba(0, 0, 0, .1);
	margin: 16px 0;
}

.booking-price-total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 1.1rem;
}

.booking-price-total-label {
	font-weight: 500;
}

.booking-price-total-amount {
	font-size: 1.4rem;
	font-weight: 700;
}

.booking-reserve-btn {
	width: 100%;
	padding: 16px 24px;
	border: none;
	background: var(--wp--preset--color--green);
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s;
	margin-bottom: 12px;
}

.booking-reserve-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 0 16px rgba(0, 0, 0, .33);
}

.booking-reserve-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.booking-clear-dates {
	display: block;
	text-align: center;
	color: #666;
	font-size: 0.85rem;
}

.booking-clear-dates a {
	color: #666;
	text-decoration: none;
}

.booking-clear-dates a:hover {
	color: #111;
	text-decoration: underline;
}

.booking-error {
	color: #c73232;
	font-size: 0.9rem;
	margin: 12px 0;
}

/* ===== Mobile Bottom Sheet: always-visible footer ===== */

/* Desktop: footer is plain inline block, toggle hidden */
.bwm-footer {
	margin-top: 4px;
}

.bwm-footer-price-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
}

.bwm-footer-price-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.bwm-footer-label {
	font-size: 0.85rem;
	color: #666;
}

.bwm-footer-toggle {
	display: none;
	/* hidden on desktop */
}

/* Mobile / Tablet */
@media (max-width: 992px) {

	/* Hide the aside from normal document flow */
	.prop-grid-bg {
		left: unset;
		transform: unset;
	}

	.booking-widget-aside {
		position: fixed;
		bottom: 0;
		left: 0;
		top: unset;
		bottom: 0;
		margin: 0;
		right: 0;
		z-index: 9000;
		/* Remove from grid so left column takes full width */
		grid-column: 1 / -1;
	}

	.booking-widget-aside .sticky-card {
		position: static;
		border-bottom: none;
		box-shadow: 0 0 16px rgba(0, 0, 0, .33);
		padding: 0;
	}

	/* Collapsible details: hidden by default */
	.bwm-details {
		display: none;
		padding: 20px 20px 4px;
		max-height: calc(80vh - 120px);
		overflow-y: auto;
	}

	/* Show details when expanded */
	.booking-widget-aside.is-expanded .bwm-details {
		display: block;
	}

	/* Always-visible footer */
	.bwm-footer {
		padding: 16px 20px 20px;
		margin-top: 0;
		background: #fff;
	}

	/* When expanded, footer has no top radius (details panel above it) */
	.booking-widget-aside.is-expanded .bwm-footer {
		border-radius: 0;
		border-top: 1px solid rgba(0, 0, 0, .08);
	}

	.bwm-footer-price-row {
		margin-bottom: 14px;
	}

	.bwm-footer-label {
		font-size: 13px;
		color: #555;
	}

	.bwm-footer-price-info .booking-price-total-amount {
		font-size: 1.5rem;
		font-weight: 700;
		color: #111;
		line-height: 1.1;
	}

	/* Toggle arrow button */
	.bwm-footer-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border: 1.5px solid #aabd92;
		background: #fff;
		cursor: pointer;
		transition: background 0.2s;
		flex-shrink: 0;
		padding: 0;
	}

	.booking-guest-row {
		flex-direction: column;
	}

	.bwm-footer-toggle:hover,
	.bwm-footer-toggle:focus {
		background: rgb(255, 255, 255);
		border-color: #aabd92;
	}

	.bwm-footer-toggle svg {
		transition: transform 0.25s ease;
		/* Default: arrow pointing up (expand) */
		transform: rotate(0deg);
		color: #696A67;
	}

	/* When expanded: arrow points down (collapse) */
	.booking-widget-aside.is-expanded .bwm-footer-toggle svg {
		transform: rotate(180deg);
	}

	/* Reserve button full width, no bottom margin */
	.booking-widget-aside .booking-reserve-btn {
		margin-bottom: 0;
	}

	/* Spacer so page content isn't hidden behind the fixed bar */
	.prop-grid {
		padding-bottom: 130px;
	}
}

.meta-icons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 24px;
	margin: 14px 0 6px;
}

.meta-icons span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
}

.meta-icons .meta-item {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 600;
}

.meta-icons .meta-item svg {
	width: 22px;
	height: 22px;
	flex: 0 0 auto;
	color: #4D4D4D;
	/* steuert fill via currentColor */
}

.section {
	margin: 40px 0;
}

.features {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px 18px;
}

@media (max-width: 900px) {
	.features {
		grid-template-columns: repeat(2, 1fr);
	}
}

.calendar {
	border: 1px dashed #ddd;
	min-height: 240px;
	display: grid;
	place-items: center;
	color: #888;
}

/* Availability Calendar */
#availability-calendar {
	margin-top: 20px;
}

.calendar-loading {
	text-align: center;
	padding: 40px;
	color: #888;
}

/* Date Range Header */
.calendar-date-range {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 32px;
	padding: 16px 0;
}

.calendar-date-range svg {
	width: 48px;
	height: 48px;
	fill: #374151;
}

.calendar-date-range-text {
	font-size: 1.75rem;
	font-weight: 600;
	color: #111;
}

.availability-calendar-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	margin-top: 24px;
}

@media (max-width: 900px) {
	.availability-calendar-wrapper {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

.calendar-month {
	position: relative;
}

.calendar-month-header {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 24px;
}

.calendar-month-title {
	font-size: 1.2rem;
	font-weight: 600;
	margin: 0;
	color: #111;
}

.calendar-nav-btn {
	width: 55px;
	height: 55px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--green);
	background: var(--wp--preset--color--light-green);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	color: #000;
	transition: background-color 0.2s;
}

.calendar-nav-btn:hover {
	background: var(--wp--preset--color--green);
	border: 1px solid var(--wp--preset--color--light-green);
	color: #fff;
}

.calendar-nav-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.calendar-weekdays {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 8px;
	margin-bottom: 16px;
	font-weight: 600;
	font-size: 0.875rem;
	text-align: center;
	color: #6b7280;
}

.calendar-days {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 8px;
}

.calendar-day {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	padding: 4px 0 6px;
	position: relative;
	font-weight: 600;
	font-size: 1rem;
	color: #111;
}

.calendar-day-price {
	font-size: 0.6rem;
	font-weight: 400;
	color: #555;
	margin-top: 3px;
	line-height: 1;
	white-space: nowrap;
}


.calendar-day.other-month {
	color: #d1d5db;
}

.calendar-day-number {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	max-width: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

/* Available days - no styling by default */
.calendar-day.available .calendar-day-number {
	background: #75985c;
	color: #fff;
	border: none;
}

/* Start/End days - green outlined circles */
.calendar-day.available.day-start .calendar-day-number,
.calendar-day.available.day-end .calendar-day-number {
	background: #FFFFFF;
	color: #111;
	border: 2px solid #75985c;
}

/* Unavailable days - red filled circles */
.calendar-day.unavailable .calendar-day-number {
	background: #db6845;
	color: #fff;
	border: none;
}

/* Half-checkout: left half red (still occupied), right half white (available for new checkin) */
.calendar-day.half-checkout .calendar-day-number {
	background: linear-gradient(to right, #db6845 50%, #75985c 50%);
	color: #fff;
}

/* Half-checkin: left half white (just checked out), right half red (new booking starts) */
.calendar-day.half-checkin .calendar-day-number {
	background: linear-gradient(to left, #db6845 50%, #75985c 50%);
	color: #fff;
}

.calendar-nav-left {
	position: absolute;
	left: 12px;
	top: -12px;
}

.calendar-nav-right {
	position: absolute;
	right: 12px;
	top: -12px;
}

@media (max-width: 900px) {

	.calendar-nav-left,
	.calendar-nav-right {
		position: static;
		margin: 0 8px;
	}

	.calendar-month-header {
		position: relative;
	}
}

/* Single-month mobile layout: both arrows flank the title */
.calendar-month--single .calendar-month-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.calendar-month--single .calendar-nav-left,
.calendar-month--single .calendar-nav-right {
	position: static;
	flex-shrink: 0;
}

/* Safety: hide the second month on mobile */
@media (max-width: 899px) {
	.availability-calendar-wrapper .calendar-month:nth-child(2) {
		display: none;
	}
}

@media (max-width: 600px) {
	.calendar-day-number {
		width: 35px;
		height: 35px;
	}

	.calendar-day-price {
		font-size: 0.5rem;
	}
}

.map {
	height: 380px;
	overflow: hidden;
	background: #f5f5f5;
}

.full-width-bg {
	width: 100%;
	margin-left: 0;
	transform: none;
	background-color: #E8E4DA;
	margin-bottom: 0;
}

/* Booking Widget Styles */
#booking-date-display:hover,
#booking-guests-display:hover {
	border-color: #aabd92;
	transition: border-color 0.2s;
}

.book-btn:hover {
	background: #eab308 !important;
	border-color: #eab308 !important;
	transform: translateY(-2px);
	box-shadow: 0 0 16px rgba(0, 0, 0, 0.33);
}

.book-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	pointer-events: none;
}

#price-breakdown {
	font-size: 0.9rem;
	line-height: 1.6;
}

#price-breakdown .u-flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-bottom: 8px;
}

#price-breakdown .u-flex>div {
	flex: 1 1 50%;
	margin-bottom: 8px;
}

#clear-dates:hover {
	color: #111;
}

/* Flatpickr Custom Styling */
.flatpickr-calendar {
	box-shadow: 0 8px 24px rgba(0, 0, 0, .12) !important;
	border: 1px solid #e5e7eb !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
	background: var(--wp--preset--color--green) !important;
	border-color: var(--wp--preset--color--green) !important;
	color: #fff !important;
}

.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover {
	background: var(--wp--preset--color--green) !important;
	border-color: var(--wp--preset--color--green) !important;
}

.flatpickr-day.inRange {
	background: var(--wp--preset--color--light-green) !important;
	border-color: var(--wp--preset--color--light-green) !important;
	box-shadow: none !important;
}

.flatpickr-day:hover:not(.disabled) {
	background: #f5f5f5 !important;
}

.flatpickr-months {
	border-radius: 12px 12px 0 0 !important;
}

.single-left-text-wrapper {
	margin-right: 5rem;
}

@media (max-width: 1024px) {

	.hero-slot--big,
	.hero-side {
		height: 100%;
		width: 100%;
	}

	:root {
		--hero-image-height: 40vh;
	}
}

@media (max-width: 1100px) {
	.section-hb-html-1 {
		width: 86px;
	}
}

@media (max-width: 1600px) {
	.prop-wrap {
		padding: 0;
	}
	.posts__fav.prop__fav.is-active {
		margin-right: 56px;
	}
	.hero-wrapper {
		padding: 24px 26px 32px;
	}

	.single-left-text-wrapper {
		padding-inline-start: 26px;
		margin-right: 26px;
	}

	.hero-rotator-grid {
		grid-template-columns: minmax(0, 1fr) 56px minmax(0, 1fr) 56px;
	}
}

@media (max-width: 980px) {
	.prop-grid {
		grid-template-columns: 1fr;
	}
}

/* ===== Ausstattung: Icon-Grid + Modal ===== */
.amenity-icons {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px 28px;
	margin-top: 12px;
	margin-bottom: 18px;
}

@media (max-width: 900px) {
	.amenity-icons {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.single-left-text-wrapper {
		padding-inline-start: 0px;
		margin-right: 0px;
	}
}

.amenity-icon {
	display: flex;
	align-items: center;
	gap: 12px;
	color: #4D4D4D;
}

.amenity-icon__svg svg {
	width: 26px;
	height: 26px;
	flex: 0 0 auto;
	color: #4D4D4D;
}

.amenity-icon__label {
	font-weight: 500;
	color: #4D4D4D;
}

.amenity-all-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 21px 34px;
	border: 1px solid var(--color-primary);
	background: var(--color-bg);
	cursor: pointer;
	font-weight: 500;
	color: var(--ast-global-color-2);
}

.amenity-all-btn:hover {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
}

/* Modal */
.amenity-modal {
	position: fixed !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	display: none;
	z-index: 9999 !important;
	padding: 24px 16px;
	box-sizing: border-box;
}

.amenity-modal.is-open {
	display: -webkit-flex !important;
	display: flex !important;
	-webkit-align-items: center !important;
	align-items: center !important;
	-webkit-justify-content: center !important;
	justify-content: center !important;
}

.amenity-modal__backdrop {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgba(0, 0, 0, .45);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.amenity-modal__panel {
	position: relative;
	z-index: 1;
	width: min(720px, 100%);
	max-height: 80vh;
	max-height: 80dvh;
	display: -webkit-flex;
	display: flex;
	-webkit-flex-direction: column;
	flex-direction: column;
	overflow: hidden;
	background: #E8E4DA;
	border: 1px solid rgba(255, 255, 255, .25);
	box-shadow: 0 20px 64px rgba(0, 0, 0, .38);
	border-radius: 12px;
	margin: auto;
}

.amenity-modal__header {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 24px;
	border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.amenity-modal__title {
	margin: 0;
	font-size: 24px;
}

.amenity-modal__close {
	appearance: none;
	background: #f2f2f2;
	border: 1px solid #e6e6e6;
	padding: 0;
	cursor: pointer;
	font-size: 22px;
	line-height: 1;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #111827;
	border-radius: 6px;
	flex-shrink: 0;
}

.amenity-modal__close:hover {
	background: #e6e6e6;
	border: 1px solid #dadada;
	color: #111827;
}

.amenity-modal__content {
	flex: 1 1 auto;
	min-height: 0;
	padding: 20px 24px 28px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}

@media (max-width: 560px) {
	.amenity-modal {
		padding: 12px;
	}

	.amenity-modal__panel {
		max-height: 90vh;
		max-height: 90dvh;
		width: 100%;
	}

	.amenity-modal__header {
		padding: 14px 16px;
	}

	.amenity-modal__content {
		padding: 14px 16px 20px;
	}
}

.admin-bar .amenity-modal {
	top: 32px !important;
}

@media screen and (max-width: 782px) {
	.admin-bar .amenity-modal {
		top: 46px !important;
	}
}

.amenity-all-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px 48px;
	margin: 0;
	padding: 0;
	list-style: none;
	/* wichtig: native Marker aus */
}

@media (max-width: 900px) {
	.amenity-all-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.amenity-all-list {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 544px) {
	.ast-separate-container #content .ast-container {
		padding-left: 0;
		padding-right: 0;
	}
}

.amenity-all-list li {
	display: grid;
	grid-template-columns: 14px 1fr;
	/* Punkt | Text */
	column-gap: 14px;
	align-items: start;
	/* Punkt oben an Text */
	line-height: 1.35;
	margin: 0;
	padding: 0;
	min-width: 0;
}

.amenity-all-list li::before {
	content: "";
	width: 12px;
	height: 12px;
	background: #aabd92;
	margin-top: .25em;
	/* optische Vertikaljustierung */
}

.posts__fav.is-active svg .heart-fill {
	fill: var(--color-primary);
}