.booking-page{background:#f7f5f0;color:#222}
.booking-search-hero{
	display:flex;
	flex-direction:column;
	align-items:stretch;
	background:
		linear-gradient(180deg, rgba(18, 18, 20, 0.80) 0%, rgba(18, 18, 20, 0.82) 100%),
		url("/image/plankenstein/Plankenstein_burg.jpg") center top / cover no-repeat,
		radial-gradient(circle at top, rgba(205, 161, 61, 0.10), transparent 52%);
	padding: 72px 0 44px;
}
.booking-search-hero > .container{
	position:relative;
	z-index:2;
	width:100%;
	padding:0 0 35px;
	text-align:center;
}
.booking-search-hero h1{
	color:#fff;
	font-size:clamp(36px, 5.4vw, 68px);
	line-height:0.92;
	letter-spacing:-0.03em;
	text-align:center;
	margin:0;
	font-family:Georgia, "Times New Roman", serif;
	font-weight:700;
}
.booking-strip--search{position:relative;z-index:30;margin-top:22px!important}
.booking-strip--search{width:100%;clear:both}
.booking-strip--search .container{max-width:1320px;margin:0 auto;padding:0 20px;width:100%}
.booking-search-hero .booking-form{width:100%}
.booking-form{
	display:grid;
	grid-template-columns:minmax(300px,1.65fr) 0.8fr 0.8fr auto;
	gap:14px;
	align-items:end;
	background:#f4f4f4;
	border-radius:20px;
	padding:18px;
	box-shadow:0 12px 30px rgba(0,0,0,.10);
	border:1px solid rgba(0,0,0,.05);
}
.booking-item label{
	display:block;
	margin-bottom:6px;
	font-size:13px;
	font-weight:700;
	color:#333;
	line-height:1.2;
}
.booking-input-wrap{
	position:relative;
	display:flex;
	align-items:center;
	min-height:56px;
	padding:0 14px;
	background:#f8f8f8;
	border:2px solid #ddd;
	border-radius:14px;
	transition:all .25s ease;
	cursor:pointer;
}
.booking-item--date .booking-input-wrap{min-height:54px}
.booking-item--date .booking-input{height:50px;font-size:14px}
.booking-item--compact .booking-input-wrap{min-height:46px}
.booking-item--compact .booking-input,
.booking-item--compact .booking-select{height:42px;font-size:13px}
.booking-input-wrap:hover{border-color:#cda13d;background:#fff}
.booking-input-wrap:focus-within{border-color:#cda13d;background:#fff;box-shadow:0 0 0 4px rgba(205,161,61,.12)}
.booking-input-wrap i{
	position:absolute;
	right:14px;
	top:50%;
	transform:translateY(-50%);
	font-size:18px;
	color:#2b2b2b;
	pointer-events:none;
}
.booking-input,
.booking-select{
	width:100%;
	height:52px;
	border:0;
	outline:none;
	background:transparent;
	font-size:14px;
	font-weight:500;
	color:#333;
	padding-right:36px;
}
.booking-input{cursor:pointer}
.booking-input::placeholder{color:#8d8d8d;opacity:1}
.booking-select{
	appearance:none;
	-webkit-appearance:none;
	-moz-appearance:none;
	cursor:pointer;
	padding-left:10px;
	text-align:center;
	text-align-last:center;
}
.booking-input-wrap select option{text-align:left}
.booking-submit{align-self:end}
.booking-submit button{
	width:100%;
	min-width:220px;
	height:52px;
	border:0;
	border-radius:14px;
	padding:0 24px;
	background:#cda13d;
	color:#fff;
	font-size:15px;
	font-weight:700;
	line-height:1;
	cursor:pointer;
	transition:all .25s ease;
}
.booking-submit button:hover{background:#b88e31;transform:translateY(-1px)}
.booking-submit button:active{transform:translateY(0)}
.booking-hero-summary{
	max-width:980px;
	margin:16px auto 10px;
	color:#fff;
	font-size:clamp(19px, 1.55vw, 22px);
	font-weight:700;
	line-height:1.3;
	text-align:center;
	text-shadow:0 1px 0 rgba(0,0,0,.15);
}

.booking-room-list{display:flex;flex-direction:column;gap:10px;max-width:1140px;margin:0 auto}
.booking-room-card{display:grid;grid-template-columns:250px minmax(0,1fr);background:#fff;border:1px solid #e5e1d8;border-radius:10px;overflow:hidden;box-shadow:0 5px 14px rgba(0,0,0,.03)}
.booking-room-card--recommended{border:2px solid #cda13d;background:#fffdf7;box-shadow:0 8px 24px rgba(168,124,31,.13);margin-bottom:10px}
.booking-room-recommendation{grid-column:1 / -1;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:12px 18px;background:linear-gradient(110deg,#fff1ca,#fbf6e8);border-bottom:1px solid #e5cf97;color:#79591e;font-size:14px;line-height:1.5}
.booking-room-recommendation strong{font-size:15px;font-weight:800}
.booking-room-recommendation span{font-size:13px;line-height:1.5}
.booking-room-card--recommended .booking-room-footer a{background:#a87c1f}
.booking-room-card--recommended .booking-room-footer a:hover{background:#8a6519}
.booking-room-image{display:block;min-height:145px;background:#e9e2d7;color:#8a6b2d}
.booking-room-image img{width:100%;height:100%;object-fit:cover}
.booking-room-image span{height:100%;display:flex;align-items:center;justify-content:center;font-size:38px}
.booking-room-body{padding:18px 18px 16px;display:flex;flex-direction:column;gap:12px}
.booking-room-main{display:grid;grid-template-columns:minmax(260px,1fr) minmax(230px,340px);gap:14px;border-bottom:1px solid #ece6da;padding-bottom:10px}
.booking-room-body h2{font-size:27px;line-height:1.2;margin:0 0 4px}
.booking-room-body p{color:#667085;margin:0;font-size:14px;line-height:1.35}
.booking-room-facts,.booking-room-amenities{list-style:none;padding:0;margin:0;display:grid;gap:9px;font-size:15px;line-height:1.35}
.booking-room-facts{border-left:1px solid #ece6da;padding-left:14px}
.booking-room-body li i{color:#cda13d;width:20px}
.booking-room-body .booking-breakfast-included,.booking-room-body .booking-breakfast-included i{color:#198754}
.booking-room-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding-top:2px}
.booking-room-footer>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.booking-room-footer span{display:block;color:#667085;font-size:13px;line-height:1.2}
.booking-room-footer strong{display:block;font-size:30px;line-height:1.1;white-space:nowrap}
.booking-room-footer a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 14px;border-radius:10px;text-decoration:none;font-weight:700;font-size:13px;white-space:nowrap;background:#1f2933;color:#fff}
.booking-room-footer a:hover{background:#2f3f50}
.booking-empty{background:#fff;border:1px solid #e5e1d8;border-radius:8px;padding:35px;text-align:center}

.flatpickr-calendar{
	z-index:99999!important;
	border:1px solid rgba(17,24,39,.06)!important;
	border-radius:20px!important;
	box-shadow:0 22px 56px rgba(15,23,42,.18)!important;
	overflow:hidden;
	padding:14px 12px 12px;
	font-family:inherit;
	background:#fff;
	box-sizing:border-box;
	width:min(500px,calc(100vw - 12px))!important;
}
.flatpickr-calendar:before,.flatpickr-calendar:after{display:none!important}
.booking-calendar-hint{display:flex;align-items:center;gap:10px;margin:0 4px 10px;padding:9px 11px;border-radius:11px;background:#fbf5e5;color:#5f4a1d;font-size:11px;font-weight:700;line-height:1.35}
.booking-calendar-hint-gesture{position:relative;flex:0 0 58px;height:20px}
.booking-calendar-hint-gesture:before,.booking-calendar-hint-gesture:after{content:"";position:absolute;top:6px;width:9px;height:9px;border-radius:50%;background:#cda13d}
.booking-calendar-hint-gesture:before{left:1px}.booking-calendar-hint-gesture:after{right:1px}
.booking-calendar-hint-line{position:absolute;left:8px;right:8px;top:10px;height:2px;background:rgba(205,161,61,.4)}
.booking-calendar-hint-hand{position:absolute;z-index:1;left:0;top:0;font-size:18px;color:#8b671c;animation:booking-date-drag 2.4s ease-in-out infinite}
@keyframes booking-date-drag{0%,15%{transform:translateX(0) scale(1);opacity:.65}35%{transform:translateX(0) scale(.88);opacity:1}75%{transform:translateX(42px) scale(.88);opacity:1}90%,100%{transform:translateX(42px) scale(1);opacity:.65}}
@media(prefers-reduced-motion:reduce){.booking-calendar-hint-hand{animation:none;left:20px}}
.flatpickr-months{position:relative;padding:2px 6px 10px;margin-bottom:0;background:transparent}
.flatpickr-month{height:auto!important;color:#202020!important;fill:#202020!important;position:relative!important;min-height:32px!important}
.flatpickr-current-month{
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	gap:6px!important;
	left:0!important;
	right:0!important;
	width:100%!important;
	padding:0 42px!important;
	font-size:14px!important;
	font-weight:700!important;
	box-sizing:border-box!important
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year{
	width:auto!important;
	margin:0!important;
	padding:0!important;
	font-size:15px!important;
	font-weight:700!important;
	color:#202020!important;
	background:transparent!important;
	border:0!important;
	box-shadow:none!important
}
.flatpickr-current-month .flatpickr-monthDropdown-months{-webkit-appearance:none;appearance:none}
.flatpickr-current-month input.cur-year{
	-moz-appearance:textfield!important;
	appearance:textfield!important
}
.flatpickr-current-month input.cur-year::-webkit-outer-spin-button,
.flatpickr-current-month input.cur-year::-webkit-inner-spin-button{
	-webkit-appearance:none!important;
	margin:0!important
}
.flatpickr-prev-month,.flatpickr-next-month{top:2px!important;padding-top:7px!important;color:#202020!important;fill:#202020!important}
.flatpickr-prev-month:hover svg,.flatpickr-next-month:hover svg{fill:#cda13d!important}
.flatpickr-weekdays{margin-bottom:6px;background:transparent}
span.flatpickr-weekday{color:#333!important;font-size:11px!important;font-weight:700!important;letter-spacing:.04em;background:transparent!important;height:auto!important;line-height:1.2!important}
.flatpickr-days{width:100%!important;padding-bottom:4px}
.flatpickr-rContainer{width:100%!important}
.dayContainer,.flatpickr-days .dayContainer{width:100%!important;min-width:100%!important;max-width:100%!important;padding:0!important;margin:0!important}
.flatpickr-day{
	width:14.285714%!important;
	max-width:14.285714%!important;
	height:48px!important;
	line-height:48px!important;
	flex:0 0 14.285714%!important;
	margin:0!important;
	border-radius:8px!important;
	font-size:13px!important;
	font-weight:600!important;
	color:#1f2937!important;
	border:1px solid transparent!important;
	box-sizing:border-box!important;
	transition:background .15s ease,color .15s ease,border-color .15s ease;
	touch-action:none;
}
.flatpickr-day:hover{background:#f7edd0!important;border-color:#edd9a0!important}
.flatpickr-day.today{border-color:rgba(205,161,61,.5)!important;color:#1f2937!important}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus{background:#cda13d!important;border-color:#cda13d!important;color:#fff!important;box-shadow:none!important}
.flatpickr-day.inRange{background:rgba(205,161,61,.16)!important;border-color:rgba(205,161,61,.16)!important;color:#1f2937!important;box-shadow:none!important}
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.startRange,
.flatpickr-day.selected.endRange{border-radius:8px!important}
.flatpickr-day.drag-preview{background:rgba(205,161,61,.16)!important;border-color:rgba(205,161,61,.16)!important;color:#1f2937!important;box-shadow:none!important;border-radius:8px!important}
.flatpickr-day.drag-start,
.flatpickr-day.drag-end{background:#cda13d!important;border-color:#cda13d!important;color:#fff!important}
.flatpickr-day.drag-start{border-radius:8px 0 0 8px!important}
.flatpickr-day.drag-end{border-radius:0 8px 8px 0!important}
.flatpickr-day.drag-start.drag-end{border-radius:8px!important}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay{color:#b9b9b9!important;background:transparent!important;border-color:transparent!important}

@media(max-width:1199px){
	.booking-form{grid-template-columns:1fr 1fr}
	.booking-submit{grid-column:1/-1}
	.booking-submit button{min-width:100%;height:52px}
}

.booking-promotion{display:flex;align-items:center;gap:12px;margin:4px 0 14px;padding:12px 14px;border:1px solid #d9bd72;border-radius:10px;background:linear-gradient(135deg,#fff9e8,#f8efcf);color:#5f4612}
.booking-promotion i{font-size:20px;color:#b18421}
.booking-promotion div{display:grid;gap:2px}
.booking-promotion strong{font-size:14px;line-height:1.3}
.booking-promotion span{font-size:13px;line-height:1.3}

@media(max-width:991px){
	.booking-search-hero{padding:58px 0 34px}
	.booking-search-hero h1{font-size:clamp(34px, 7vw, 58px)}
	.booking-strip--search{margin-top:16px!important}
	.booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}
	.booking-submit{grid-column:1/-1}
	.booking-submit button{width:100%;height:56px}
	.booking-room-card{grid-template-columns:1fr}
	.booking-room-image{min-height:190px}
	.booking-room-main{grid-template-columns:1fr}
	.booking-room-facts{border-left:0;padding-left:0;padding-top:8px;border-top:1px solid #ece6da}
	.booking-room-body h2{font-size:24px}
	.booking-room-body p{font-size:14px}
	.booking-room-facts,.booking-room-amenities{font-size:15px}
	.booking-room-footer strong{font-size:27px}
}

@media(max-width:767px){
	.booking-search-hero{padding:56px 0 30px}
	.booking-search-hero h1{font-size:34px}
	.booking-search-hero > .container{padding:0 0 28px}
	.booking-strip--search{margin-top:14px!important}
	.booking-strip--search .container{padding:0 15px}
	.booking-form{grid-template-columns:1fr;gap:12px;padding:16px;border-radius:18px}
	.booking-inline-field label{font-size:13px;margin-bottom:6px}
	.booking-input-wrap{min-height:52px;border-radius:12px;padding:0 12px}
	.booking-item--date .booking-input-wrap{min-height:52px}
	.booking-item--compact .booking-input-wrap{min-height:44px}
	.booking-input,.booking-select{height:48px;font-size:14px;padding-right:34px}
	.booking-item--date .booking-input{height:48px;font-size:14px}
	.booking-item--compact .booking-input,.booking-item--compact .booking-select{height:40px;font-size:13px}
	.booking-input-wrap i{font-size:17px;right:12px}
	.booking-submit button{height:52px;min-width:100%;border-radius:12px;font-size:14px}
	.booking-hero-summary{font-size:17px;text-align:left;margin:14px auto 8px}
	.booking-room-footer{align-items:flex-start;flex-direction:column}
	.booking-room-body h2{font-size:21px}
	.booking-room-body p{font-size:14px}
	.booking-room-facts,.booking-room-amenities{font-size:14px}
	.booking-room-footer strong{font-size:24px}
	.booking-room-footer a{width:100%}
	.flatpickr-calendar{width:min(500px,calc(100vw - 12px))!important;padding:10px 8px 8px}
	.flatpickr-rContainer,
	.flatpickr-days,
	.dayContainer,
	.flatpickr-days .dayContainer{width:100%!important;min-width:100%!important;max-width:100%!important}
	.flatpickr-day{height:44px!important;line-height:44px!important}
}
