/*
Theme Name: Ferienwohnung Ella Theme
Theme URI: https://farukgaric.com/
Author: Faruk Garic
Description: A high-performance, modern, lightweight theme built specifically for Ferienwohnung Ella, fully integrated with MotoPress Hotel Booking. Bypasses bulky page builders for maximum performance.
Version: 1.0.0
License: GPLv2 or later
Text Domain: ella-theme
*/

/* ==========================================================================
   Reset and Typography Base
   ========================================================================== */
.ella-clean-booking-page-body {
	background-color: #f8fafc !important;
	margin: 0 !important;
	padding: 0 !important;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
	color: #334155 !important;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	line-height: 1.6 !important;
}

/* ==========================================================================
   Minimal Premium Header
   ========================================================================== */
.ella-clean-booking-header {
	background-color: #ffffff;
	border-bottom: 1px solid #e2e8f0;
	padding: 16px 0;
	position: sticky;
	top: 0;
	z-index: 1000;
	box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.05);
}

.ella-header-container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 60px;
}

.ella-logo-link {
	text-decoration: none !important;
	display: flex;
	flex-direction: column;
}

.ella-logo-main {
	font-family: 'Outfit', sans-serif;
	font-weight: 800;
	font-size: 22px;
	line-height: 1.1;
	letter-spacing: -0.5px;
	color: #f3615a;
	transition: color 0.2s ease;
}

.ella-logo-link:hover .ella-logo-main {
	color: #d9524c;
}

.ella-logo-sub {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: #64748b;
	margin-top: 4px;
}

.ella-btn-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none !important;
	color: #475569 !important;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	border: 1.5px solid #cbd5e1;
	padding: 8px 18px;
	border-radius: 100px;
	background-color: transparent;
	transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
	cursor: pointer;
}

.ella-btn-back:hover {
	color: #0f172a !important;
	border-color: #94a3b8;
	background-color: #f1f5f9;
	box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
	transform: translateX(-2px);
}

.ella-icon-arrow {
	transition: transform 0.2s ease;
}

.ella-btn-back:hover .ella-icon-arrow {
	transform: translateX(-3px);
}

/* ==========================================================================
   Main Canvas Card
   ========================================================================== */
.ella-clean-booking-main {
	max-width: 100%;
	min-height: calc(100vh - 232px);
	padding: 48px 24px;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	box-sizing: border-box;
}

.ella-booking-card {
	background-color: #ffffff;
	width: 100%;
	max-width: 1120px;
	border-radius: 20px;
	border: 1px solid #e2e8f0;
	box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.04), 0 20px 48px -10px rgba(15, 23, 42, 0.06);
	padding: 48px;
	box-sizing: border-box;
}

.ella-booking-title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 32px;
	line-height: 1.25;
	color: #0f172a;
	margin-top: 0;
	margin-bottom: 32px;
	padding-bottom: 16px;
	border-bottom: 2px solid #f1f5f9;
}

.ella-booking-content {
	font-size: 16px;
	line-height: 1.7;
	color: #334155;
}

/* Heading styles inside content */
.ella-booking-content h2,
.ella-booking-content h3 {
	font-family: 'Outfit', sans-serif;
	color: #0f172a;
	font-weight: 700;
	margin-top: 36px;
	margin-bottom: 16px;
}

.ella-booking-content h2 {
	font-size: 24px;
}

.ella-booking-content h3 {
	font-size: 19px;
}

/* ==========================================================================
   Minimal Premium Footer
   ========================================================================== */
.ella-clean-booking-footer {
	background-color: #ffffff;
	border-top: 1px solid #e2e8f0;
	padding: 32px 0;
	color: #64748b;
	font-size: 14px;
}

.ella-footer-container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
}

.ella-copyright {
	margin: 0;
}

.ella-footer-links {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ella-footer-links a {
	color: #64748b !important;
	text-decoration: none !important;
	font-weight: 500;
	transition: color 0.15s ease;
}

.ella-footer-links a:hover {
	color: #f3615a !important;
}

.ella-divider {
	color: #cbd5e1;
	user-select: none;
}

/* ==========================================================================
   Responsive Breakpoints
   ========================================================================== */
@media (max-width: 768px) {
	.ella-clean-booking-main {
		padding: 24px 12px;
	}

	.ella-booking-card {
		padding: 24px 16px;
		border-radius: 12px;
	}

	.ella-booking-title {
		font-size: 26px;
		margin-bottom: 24px;
	}

	.ella-footer-container {
		flex-direction: column;
		text-align: center;
	}

	.ella-footer-links {
		justify-content: center;
	}
}

/* ==========================================================================
   MotoPress Plugin Specific Overrides (Canvas adjustments)
   ========================================================================== */
/* Hide standard page title injected by theme within content */
.ella-booking-content .entry-title {
	display: none !important;
}

/* Align and clean up layout elements for forms */
.mphb-required-fields-tip {
	margin-bottom: 24px;
	color: #64748b;
	font-size: 14px;
}

/* Alert boxes */
.mphb-notice,
.mphb-error,
.mphb-success-message {
	padding: 16px 20px !important;
	border-radius: 12px !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
	margin-bottom: 28px !important;
	border-left-width: 4px !important;
}

.mphb-notice {
	background-color: #f0fdf4 !important;
	border: 1px solid #bbf7d0 !important;
	border-left: 4px solid #22c55e !important;
	color: #166534 !important;
}

.mphb-error {
	background-color: #fef2f2 !important;
	border: 1px solid #fecaca !important;
	border-left: 4px solid #ef4444 !important;
	color: #991b1b !important;
}

/* Tables style polish inside card */
.mphb-price-breakdown {
	border-radius: 12px !important;
	overflow: hidden !important;
	border: 1px solid #e2e8f0 !important;
}

.mphb-price-breakdown th {
	background-color: #f8fafc !important;
	color: #0f172a !important;
	font-family: 'Outfit', sans-serif !important;
}

/* Single room type custom templates additions */
.mphb-single-room-type-attributes {
	list-style: none !important;
	padding: 0 !important;
	margin: 24px 0 !important;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 16px;
}

.mphb-single-room-type-attributes li {
	background: #f8fafc;
	padding: 12px 16px;
	border-radius: 8px;
	border: 1px solid #e2e8f0;
	font-size: 14px;
}

.mphb-single-room-type-attributes li strong {
	color: #0f172a;
	display: block;
	margin-top: 0;
	margin-bottom: 4px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* ==========================================================================
   Accommodations Directory Grid Layout
   ========================================================================== */
.mphb-room-types {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)) !important;
	gap: 36px !important;
	padding: 0 !important;
	margin: 24px 0 !important;
	list-style: none !important;
}

.mphb-room-types .mphb-room-type {
	background-color: #ffffff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 16px !important;
	padding: 24px !important;
	box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.02), 0 10px 15px -3px rgba(15, 23, 42, 0.05) !important;
	transition: all 0.3s ease !important;
	display: flex !important;
	flex-direction: column !important;
	box-sizing: border-box !important;
}

.mphb-room-types .mphb-room-type:hover {
	transform: translateY(-5px) !important;
	box-shadow: 0 20px 25px -5px rgba(15, 23, 42, 0.08), 0 10px 10px -5px rgba(15, 23, 42, 0.04) !important;
}

.mphb-room-type-title {
	font-family: 'Outfit', sans-serif !important;
	font-weight: 700 !important;
	font-size: 24px !important;
	line-height: 1.3 !important;
	color: #0f172a !important;
	margin-top: 16px !important;
	margin-bottom: 12px !important;
}

/* Flex buttons on cards */
.mphb-room-type .mphb-view-details-button,
.mphb-room-type .mphb-book-button {
	display: inline-block !important;
	text-align: center !important;
	box-sizing: border-box !important;
	font-size: 13px !important;
	padding: 10px 20px !important;
}

.mphb-room-type .mphb-view-details-button {
	margin-right: 8px !important;
	background-color: #f1f5f9 !important;
	color: #334155 !important;
	border-color: #e2e8f0 !important;
}

.mphb-room-type .mphb-view-details-button:hover {
	background-color: #e2e8f0 !important;
	color: #0f172a !important;
	box-shadow: none !important;
}

/* Hide theme sidebars on full-width template page */
.ella-clean-booking-page-body #sidebar,
.ella-clean-booking-page-body .sidebar {
	display: none !important;
}

/* ==========================================================================
   Touch Image Slider Styling
   ========================================================================== */
.ella-room-slider-wrapper {
	width: 100%;
	margin-bottom: 8px;
}

.ella-room-slider-container {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 10;
	border-radius: 12px;
	overflow: hidden;
	background-color: #f1f5f9;
	box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.05);
}

.ella-room-slider-track {
	display: flex;
	width: 100%;
	height: 100%;
	transition: transform 0.45s cubic-bezier(0.25, 1, 0.5, 1);
}

.ella-room-slide {
	flex-shrink: 0;
	width: 100%;
	height: 100%;
}

.ella-room-slide a {
	display: block;
	width: 100%;
	height: 100%;
	cursor: zoom-in;
}

.ella-room-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.ella-room-slide a:hover img {
	transform: scale(1.02);
}

/* Arrows */
.ella-slider-prev,
.ella-slider-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%) scale(1);
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(15, 23, 42, 0.5);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	border: none;
	color: #ffffff;
	cursor: pointer;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease;
	opacity: 0.8;
}

.ella-slider-prev:hover,
.ella-slider-next:hover {
	background: rgba(15, 23, 42, 0.85);
	transform: translateY(-50%) scale(1.08);
	opacity: 1;
}

.ella-slider-prev {
	left: 12px;
}

.ella-slider-next {
	right: 12px;
}

/* Dots */
.ella-slider-dots {
	position: absolute;
	bottom: 12px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 6px;
	z-index: 10;
	background: rgba(15, 23, 42, 0.25);
	padding: 6px 10px;
	border-radius: 100px;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.ella-slider-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	border: none;
	padding: 0;
	cursor: pointer;
	transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.ella-slider-dot.active {
	width: 16px;
	border-radius: 100px;
	background: #ffffff;
}

/* ==========================================================================
   Fullscreen Zoomable Lightbox Modal
   ========================================================================== */
.ella-lightbox-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	z-index: 999999;
	background-color: rgba(9, 15, 29, 0.96);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.ella-lightbox-close {
	position: absolute;
	top: 24px;
	right: 24px;
	font-size: 40px;
	font-family: Arial, sans-serif;
	line-height: 1;
	color: rgba(255, 255, 255, 0.7);
	background: none;
	border: none;
	cursor: pointer;
	z-index: 1000002;
	transition: color 0.2s, transform 0.2s;
	padding: 10px;
}

.ella-lightbox-close:hover {
	color: #ffffff;
	transform: scale(1.1);
}

.ella-lightbox-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	font-size: 32px;
	color: rgba(255, 255, 255, 0.7);
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	width: 54px;
	height: 54px;
	border-radius: 50%;
	cursor: pointer;
	z-index: 1000001;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease;
	backdrop-filter: blur(4px);
}

.ella-lightbox-arrow:hover {
	color: #ffffff;
	background: rgba(255, 255, 255, 0.15);
	transform: translateY(-50%) scale(1.05);
}

.ella-lightbox-prev {
	left: 24px;
}

.ella-lightbox-next {
	right: 24px;
}

.ella-lightbox-content {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ella-lightbox-zoom-wrapper {
	max-width: 90%;
	max-height: 85%;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

.ella-lightbox-img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	border-radius: 8px;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
	cursor: zoom-in;
	transition: transform 0.25s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.25s ease;
	transform-origin: center center;
}

.ella-lightbox-img.ella-zoomed {
	cursor: grab;
	transition: none;
	/* Instant translate response while panning */
}

.ella-lightbox-img.ella-zoomed:active {
	cursor: grabbing;
}

/* Toolbar overlay */
.ella-lightbox-toolbar {
	position: absolute;
	bottom: 24px;
	display: flex;
	align-items: center;
	gap: 16px;
	background: rgba(15, 23, 42, 0.7);
	padding: 8px 20px;
	border-radius: 100px;
	z-index: 1000002;
	color: #ffffff;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 13px;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.08);
}

.ella-lightbox-zoom-toggle {
	background: none;
	border: none;
	color: #ffffff;
	cursor: pointer;
	display: flex;
	align-items: center;
	padding: 0;
	transition: transform 0.2s ease;
}

.ella-lightbox-zoom-toggle:hover {
	transform: scale(1.15);
}

/* Responsive grid overrides */
@media (max-width: 768px) {
	.mphb-room-types {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}

	.ella-lightbox-arrow {
		width: 44px;
		height: 44px;
		font-size: 24px;
	}

	.ella-lightbox-prev {
		left: 12px;
	}

	.ella-lightbox-next {
		right: 12px;
	}
}

/* ==========================================================================
   Redesigned Premium Directory & Header Styles
   ========================================================================== */
.ella-premium-header {
	background-color: #ffffff;
	border-bottom: 1px solid #f1f5f9;
	padding: 0;
	position: sticky;
	top: 0;
	z-index: 1000;
	box-shadow: 0 2px 10px rgba(15, 23, 42, 0.03);
}

.ella-header-nav-container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 70px;
}

.ella-brand-logo .ella-logo-link {
	text-decoration: none !important;
}

.ella-brand-logo .ella-logo-name {
	font-family: 'Outfit', sans-serif;
	font-weight: 800;
	font-size: 22px;
	color: #f25b54;
	display: block;
	line-height: 1;
	letter-spacing: -0.5px;
}

.ella-brand-logo .ella-logo-tagline {
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 9px;
	color: #94a3b8;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin-top: 3px;
	display: block;
}

.ella-horizontal-nav {
	display: flex;
	align-items: center;
}

.ella-nav-menu-list {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex;
	align-items: center;
	gap: 28px;
}

.ella-nav-menu-list a {
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 14px;
	color: #475569 !important;
	text-decoration: none !important;
	transition: all 0.2s ease;
	position: relative;
	padding: 6px 0;
}

.ella-nav-menu-list a:hover {
	color: #0f172a !important;
}

.ella-nav-menu-list a.active,
.ella-nav-menu-list .current-menu-item>a,
.ella-nav-menu-list .current_page_item>a {
	color: #f25b54 !important;
	font-weight: 600;
}

.ella-nav-menu-list a.active::after,
.ella-nav-menu-list .current-menu-item>a::after,
.ella-nav-menu-list .current_page_item>a::after {
	content: '';
	position: absolute;
	bottom: -4px;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: #f25b54;
	border-radius: 100px;
}


.ella-header-actions {
	display: flex;
	align-items: center;
	gap: 16px;
}

.ella-btn-header-buchen {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background-color: #f25b54;
	color: #ffffff !important;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 13px;
	padding: 10px 22px;
	border-radius: 6px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none !important;
	transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: 0 4px 12px rgba(242, 91, 84, 0.2);
}

.ella-btn-header-buchen:hover {
	background-color: #e04a43;
	box-shadow: 0 6px 16px rgba(242, 91, 84, 0.3);
	transform: translateY(-1px);
}

.ella-mobile-menu-toggle {
	display: none;
	background: none;
	border: none;
	color: #475569;
	cursor: pointer;
	padding: 6px;
}

/* Listings page Title Block */
.ella-listings-intro-block {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding-bottom: 32px;
	border-bottom: 1.5px solid #f1f5f9;
	margin-bottom: 36px;
	gap: 24px;
}

.ella-listings-intro-left {
	max-width: 620px;
}

.ella-listings-subhead {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 11px;
	color: #f25b54;
	letter-spacing: 1px;
	display: block;
	margin-bottom: 8px;
}

.ella-listings-main-title {
	font-family: 'Outfit', sans-serif;
	font-weight: 800;
	font-size: 32px;
	color: #0f172a;
	margin: 0 0 12px 0;
	letter-spacing: -0.5px;
	line-height: 1.2;
}

.ella-listings-subtext {
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	color: #64748b;
	margin: 0;
	line-height: 1.5;
}

.ella-listings-intro-right {
	flex-shrink: 0;
	margin-top: 18px;
}

.ella-intro-price-badge {
	display: flex;
	align-items: center;
	gap: 12px;
	background-color: #f8fafc;
	border: 1px solid #e2e8f0;
	padding: 12px 18px;
	border-radius: 8px;
}

.ella-icon-tag {
	color: #94a3b8;
}

.ella-intro-badge-content {
	display: flex;
	flex-direction: column;
}

.ella-badge-lbl {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: #475569;
}

.ella-badge-lbl strong {
	color: #0f172a;
	font-weight: 700;
}

.ella-badge-sub {
	font-size: 11px;
	color: #94a3b8;
	margin-top: 1px;
}

/* ==========================================================================
   2-Column Room Listings Cards Grid
   ========================================================================== */
/* Convert default MotoPress loop list wrapper to our grid */
.mphb-room-types {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 32px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 48px 0 !important;
}

.ella-room-card {
	background-color: #ffffff;
	border: 1px solid #f1f5f9;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.02), 0 10px 15px -3px rgba(15, 23, 42, 0.04);
	transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
	display: flex;
	flex-direction: column;
	height: 100%;
}

.ella-room-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 25px -5px rgba(15, 23, 42, 0.08), 0 10px 10px -5px rgba(15, 23, 42, 0.04);
	border-color: #e2e8f0;
}

/* Slider overrides inside cards */
.ella-room-card .ella-card-media-wrapper {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.ella-room-card .ella-room-slider-wrapper,
.ella-room-card .ella-room-slider-container {
	width: 100%;
	height: 100%;
	border-radius: 0;
	box-shadow: none;
}

/* Badges overlay */
.ella-card-overlay-badge {
	position: absolute;
	top: 16px;
	left: 16px;
	background-color: #ffffff;
	color: #0f172a;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 11px;
	padding: 4px 8px;
	border-radius: 6px;
	box-shadow: 0 2px 4px rgba(15, 23, 42, 0.05);
	z-index: 10;
}

.ella-card-overlay-wishlist {
	position: absolute;
	top: 16px;
	right: 16px;
	background-color: #ffffff;
	border: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #94a3b8;
	cursor: pointer;
	box-shadow: 0 2px 4px rgba(15, 23, 42, 0.05);
	z-index: 10;
	transition: all 0.2s ease;
}

.ella-card-overlay-wishlist:hover {
	color: #f25b54;
	transform: scale(1.05);
}

/* Card body layout */
.ella-card-body {
	padding: 24px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.ella-card-header-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 12px;
	gap: 12px;
}

.ella-card-title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 20px;
	color: #0f172a;
	margin: 0;
	line-height: 1.25;
}

.ella-card-guests-count {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #64748b;
	font-size: 13px;
	font-weight: 500;
	flex-shrink: 0;
}

.ella-card-description {
	font-family: 'Inter', sans-serif;
	font-size: 13.5px;
	line-height: 1.55;
	color: #64748b;
	margin: 0 0 20px 0;
}

/* Attribute Grid Inside Card */
.ella-card-attributes-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	background-color: #f8fafc;
	border-radius: 10px;
	padding: 14px 18px;
	margin-bottom: 24px;
}

.ella-attr-item {
	display: flex;
	align-items: center;
	gap: 10px;
}

.ella-attr-icon-wrapper {
	color: #f25b54;
	flex-shrink: 0;
	display: flex;
	align-items: center;
}

.ella-attr-text {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.ella-attr-val {
	font-family: 'Inter', sans-serif;
	font-size: 12.5px;
	font-weight: 600;
	color: #334155;
}

.ella-attr-lbl {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	color: #94a3b8;
}

/* Card footer and buttons */
.ella-card-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
	padding-top: 18px;
	border-top: 1.5px solid #f1f5f9;
	gap: 16px;
}

.ella-card-price-info {
	display: flex;
	flex-direction: column;
}

.ella-card-price-amount {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	color: #64748b;
}

.ella-card-price-amount strong {
	font-family: 'Outfit', sans-serif;
	font-weight: 800;
	font-size: 20px;
	color: #0f172a;
}

.ella-card-price-tax {
	font-size: 11px;
	color: #94a3b8;
	margin-top: 2px;
}

.ella-card-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.ella-btn-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid #e2e8f0;
	color: #475569 !important;
	background-color: transparent;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 11.5px;
	padding: 10px 16px;
	border-radius: 6px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none !important;
	transition: all 0.2s ease;
	cursor: pointer;
}

.ella-btn-secondary:hover {
	background-color: #f8fafc;
	border-color: #cbd5e1;
	color: #0f172a !important;
}

.ella-btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	background-color: #f25b54;
	color: #ffffff !important;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 11.5px;
	padding: 11px 18px;
	border-radius: 6px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none !important;
	transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: 0 4px 10px rgba(242, 91, 84, 0.15);
	cursor: pointer;
}

.ella-btn-primary:hover {
	background-color: #e04a43;
	box-shadow: 0 6px 14px rgba(242, 91, 84, 0.25);
	transform: translateY(-0.5px);
}

.ella-icon-calendar {
	color: rgba(255, 255, 255, 0.85);
}

/* ==========================================================================
   Horizontal Key Selling Points Section
   ========================================================================== */
.ella-selling-points-banner {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-top: 48px;
	padding: 24px 16px;
	background-color: #f8fafc;
	border-radius: 12px;
	border: 1px solid #f1f5f9;
}

.ella-selling-point-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.ella-selling-point-item:not(:last-child) {
	border-right: 1.5px solid #e2e8f0;
	padding-right: 16px;
}

.ella-point-icon-wrapper {
	color: #f25b54;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	margin-top: 2px;
}

.ella-point-content {
	display: flex;
	flex-direction: column;
}

.ella-point-title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 13.5px;
	color: #0f172a;
	margin: 0 0 3px 0;
	line-height: 1.3;
}

.ella-point-desc {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	color: #64748b;
	margin: 0;
	line-height: 1.3;
}

/* ==========================================================================
   Redesigned Page Footer
   ========================================================================== */
.ella-footer-left {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}

.ella-booking-rating-badge {
	display: inline-flex;
	align-items: center;
	background-color: #0c2f54;
	/* Premium dark blue Booking.com background color */
	color: #ffffff;
	border-radius: 4px;
	overflow: hidden;
	font-weight: 700;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.ella-rating-score {
	background-color: #003580;
	/* Darker blue */
	padding: 6px 10px;
	font-size: 14px;
}

.ella-rating-provider {
	background-color: #ffffff;
	color: #003580;
	padding: 6px 10px;
	font-size: 12px;
	font-weight: 800;
}

/* ==========================================================================
   Responsive Overrides
   ========================================================================== */
@media (max-width: 991px) {
	.ella-nav-menu-list {
		display: none;
		/* Hide standard navigation on tablet/mobile */
	}

	.ella-mobile-menu-toggle {
		display: block;
		/* Show hamburger button */
	}

	.ella-selling-points-banner {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px;
	}

	.ella-selling-point-item:nth-child(even) {
		border-right: none;
	}

	.ella-selling-point-item {
		padding-right: 0 !important;
	}
}

@media (max-width: 768px) {
	.ella-listings-intro-block {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		margin-bottom: 28px;
	}

	.ella-listings-intro-right {
		margin-top: 0;
		width: 100%;
	}

	.ella-intro-price-badge {
		justify-content: flex-start;
	}

	.ella-card-footer {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.ella-card-actions {
		width: 100%;
	}

	.ella-btn-secondary,
	.ella-btn-primary {
		flex-grow: 1;
	}

	.ella-selling-points-banner {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.ella-selling-point-item {
		border-right: none !important;
		padding-bottom: 12px;
	}

	.ella-selling-point-item:not(:last-child) {
		border-bottom: 1px solid #e2e8f0;
	}
}

/* ==========================================================================
   Redesigned Single Accommodation Page Styles
   ========================================================================== */
/* Top Grid Section (Slider Left, Description/Highlights Right) */
.ella-single-top-grid {
	display: grid;
	grid-template-columns: 5.5fr 4.5fr;
	gap: 40px;
	margin-bottom: 40px;
}

.ella-single-media-column {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.ella-single-info-column {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.ella-single-category {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 11px;
	color: #f25b54;
	letter-spacing: 1px;
	margin-bottom: 8px;
}

.ella-single-title-main {
	font-family: 'Outfit', sans-serif;
	font-weight: 800;
	font-size: 32px;
	color: #0f172a;
	line-height: 1.2;
	letter-spacing: -0.5px;
	margin: 0 0 20px 0;
}

.ella-single-description-block {
	font-family: 'Inter', sans-serif;
	font-size: 14.5px;
	line-height: 1.65;
	color: #64748b;
	margin-bottom: 30px;
}

.ella-single-description-block p {
	margin-top: 0;
	margin-bottom: 16px;
}

/* Price Actions Bar (below slider) */
.ella-single-price-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 20px;
	border: 1px solid #f1f5f9;
	border-radius: 12px;
	background-color: #f8fafc;
	margin-top: 24px;
	gap: 16px;
}

.ella-single-price-left {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.ella-single-price-amount {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	color: #64748b;
}

.ella-single-price-amount strong {
	font-family: 'Outfit', sans-serif;
	font-weight: 800;
	font-size: 22px;
	color: #0f172a;
}

.ella-single-price-tax-badge {
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 11px;
	color: #94a3b8;
	background-color: #ffffff;
	border: 1px solid #e2e8f0;
	padding: 4px 8px;
	border-radius: 6px;
}

.ella-single-price-right {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ella-btn-single-merken {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: 1.5px solid #e2e8f0;
	background-color: #ffffff;
	color: #475569;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 12px;
	padding: 10px 16px;
	border-radius: 6px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	cursor: pointer;
	transition: all 0.2s ease;
}

.ella-btn-single-merken:hover {
	color: #f25b54;
	border-color: #f25b54;
	background-color: #fffdfd;
}

.ella-btn-single-buchen {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background-color: #f25b54;
	color: #ffffff !important;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 12px;
	padding: 11px 20px;
	border-radius: 6px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none !important;
	box-shadow: 0 4px 10px rgba(242, 91, 84, 0.15);
	transition: all 0.2s ease;
}

.ella-btn-single-buchen:hover {
	background-color: #e04a43;
	box-shadow: 0 6px 14px rgba(242, 91, 84, 0.25);
}

.ella-single-price-stay-info {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	color: #94a3b8;
	margin-top: 10px;
	padding-left: 6px;
}

/* Highlights 6-Grid (right column) */
.ella-single-highlights-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-top: auto;
}

.ella-highlight-item {
	display: flex;
	align-items: center;
	gap: 14px;
	background-color: #f8fafc;
	border: 1px solid #f1f5f9;
	padding: 14px 18px;
	border-radius: 8px;
}

.ella-highlight-icon {
	color: #f25b54;
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.ella-highlight-content {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.ella-hl-val {
	font-family: 'Inter', sans-serif;
	font-size: 13.5px;
	font-weight: 700;
	color: #334155;
}

.ella-hl-lbl {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	color: #94a3b8;
	margin-top: 2px;
}

/* Bottom Grid Layout Section (Checklist & Reservation Form Card) */
.ella-single-divider {
	border: 0;
	height: 1.5px;
	background-color: #f1f5f9;
	margin: 40px 0;
}

.ella-single-bottom-grid {
	display: grid;
	grid-template-columns: 6fr 4fr;
	gap: 48px;
	align-items: flex-start;
}

.ella-single-details-column {
	display: flex;
	flex-direction: column;
}

.ella-single-form-column {
	display: flex;
	flex-direction: column;
	position: sticky;
	top: 90px;
}

.ella-section-heading {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 22px;
	color: #0f172a;
	margin: 0 0 24px 0;
}

/* Amenities Checklist 8-Grid */
.ella-details-checklist-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: 32px;
	row-gap: 16px;
	margin-bottom: 32px;
}

.ella-checklist-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid #f8fafc;
}

.ella-check-icon {
	color: #f25b54;
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.ella-check-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-grow: 1;
	font-size: 13.5px;
	line-height: 1.25;
}

.ella-check-lbl {
	font-family: 'Inter', sans-serif;
	color: #64748b;
	font-weight: 500;
}

.ella-check-val {
	font-family: 'Inter', sans-serif;
	color: #334155;
	font-weight: 600;
	text-align: right;
}

/* Location card */
.ella-single-location-card {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background-color: #f8fafc;
	border: 1px solid #f1f5f9;
	border-radius: 12px;
	padding: 16px 20px;
	gap: 16px;
}

.ella-location-card-left {
	display: flex;
	align-items: center;
	gap: 14px;
}

.ella-loc-icon {
	color: #f25b54;
	display: flex;
	align-items: center;
}

.ella-location-card-text {
	display: flex;
	flex-direction: column;
	line-height: 1.35;
}

.ella-loc-title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 14px;
	color: #0f172a;
}

.ella-loc-address {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	color: #64748b;
	margin-top: 1px;
}

.ella-link-show-map {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #f25b54 !important;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 12px;
	text-decoration: none !important;
	transition: all 0.2s ease;
}

.ella-link-show-map:hover {
	color: #e04a43 !important;
}

.ella-link-show-map svg {
	transition: transform 0.2s ease;
}

.ella-link-show-map:hover svg {
	transform: translateX(3px);
}

/* Verfügbarkeit Prüfen Form Widget Card */
.ella-booking-widget-card-box {
	background-color: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.02), 0 10px 15px -3px rgba(15, 23, 42, 0.05);
	padding: 32px;
}

.ella-widget-title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 20px;
	color: #0f172a;
	margin: 0 0 24px 0;
	padding-bottom: 12px;
	border-bottom: 1.5px solid #f1f5f9;
}

.ella-widget-security-badge {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: #94a3b8;
	font-size: 12px;
	font-weight: 500;
	margin-top: 20px;
}

.ella-widget-security-badge svg {
	color: #94a3b8;
}

/* ==========================================================================
   Responsive Overrides for Single view
   ========================================================================== */
@media (max-width: 991px) {
	.ella-single-top-grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.ella-single-bottom-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.ella-single-form-column {
		position: static;
	}
}

@media (max-width: 768px) {
	.ella-single-title-main {
		font-size: 26px;
	}

	.ella-single-price-bar {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.ella-single-price-right {
		width: 100%;
	}

	.ella-btn-single-buchen,
	.ella-btn-single-merken {
		flex-grow: 1;
		justify-content: center;
	}

	.ella-single-highlights-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.ella-details-checklist-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.ella-single-location-card {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.ella-link-show-map {
		align-self: flex-end;
	}
}

/* ==========================================================================
   Redesigned Search Results Layout Styles
   ========================================================================== */
.ella-search-intro-block {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 28px;
	gap: 24px;
}

.ella-search-intro-left {
	display: flex;
	flex-direction: column;
}

.ella-search-subhead {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 11px;
	color: #f25b54;
	letter-spacing: 1px;
	margin-bottom: 8px;
}

.ella-search-main-title {
	font-family: 'Outfit', sans-serif;
	font-weight: 800;
	font-size: 28px;
	color: #0f172a;
	line-height: 1.25;
	letter-spacing: -0.5px;
	margin: 0 0 8px 0;
}

.ella-search-subtext {
	font-family: 'Inter', sans-serif;
	font-size: 13.5px;
	line-height: 1.5;
	color: #64748b;
	margin: 0;
}

/* Horizontal Search Criteria Bar (horizontal pill card) */
.ella-search-criteria-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background-color: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	padding: 20px 32px;
	box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.02), 0 10px 15px -3px rgba(15, 23, 42, 0.04);
	margin-bottom: 48px;
	gap: 20px;
}

.ella-criteria-col {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-grow: 1;
}

.ella-criteria-col:not(:last-child) {
	border-right: 1.5px solid #f1f5f9;
	padding-right: 24px;
}

.ella-criteria-icon {
	color: #f25b54;
	display: flex;
	align-items: center;
	flex-shrink: 0;
	background-color: #fff5f5;
	padding: 8px;
	border-radius: 8px;
}

.ella-criteria-info {
	display: flex;
	flex-direction: column;
	line-height: 1.35;
}

.ella-crit-lbl {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 600;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.ella-crit-val {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 14px;
	color: #334155;
	margin-top: 1px;
}

.ella-crit-sub {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	color: #64748b;
}

.ella-criteria-action {
	flex-shrink: 0;
}

.ella-btn-change-search {
	display: inline-flex;
	align-items: center;
	background-color: #f1f5f9;
	color: #475569;
	border: none;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 11.5px;
	padding: 12px 20px;
	border-radius: 8px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none !important;
	transition: all 0.2s ease;
}

.ella-btn-change-search:hover {
	background-color: #e2e8f0;
	color: #0f172a;
}

/* Recommended Header Sub Bar */
.ella-search-results-sub-bar {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 24px;
	border-bottom: 1.5px solid #f1f5f9;
	padding-bottom: 16px;
	gap: 20px;
}

.ella-sub-bar-left {
	display: flex;
	flex-direction: column;
}

.ella-recommend-title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 18px;
	color: #0f172a;
	margin: 0 0 4px 0;
}

.ella-recommend-sub {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	color: #94a3b8;
}

.ella-sub-bar-right {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
}

.ella-sort-label {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	color: #64748b;
}

.ella-sort-select {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 12px;
	color: #334155;
	border: 1.5px solid #e2e8f0;
	border-radius: 8px;
	padding: 8px 36px 8px 16px;
	background-color: #ffffff;
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 12px center;
	transition: all 0.2s ease;
}

.ella-sort-select:hover {
	border-color: #cbd5e1;
}

/* Horizontal Search Result Card List */
.ella-search-horizontal-card {
	display: flex;
	background-color: #ffffff;
	border: 1px solid #f1f5f9;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.02), 0 10px 15px -3px rgba(15, 23, 42, 0.04);
	margin-bottom: 24px;
	transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
	height: auto;
}

.ella-search-horizontal-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 20px -8px rgba(15, 23, 42, 0.08);
}

.ella-search-card-media-wrapper {
	width: 38%;
	position: relative;
	overflow: hidden;
	flex-shrink: 0;
	height: auto;
	min-height: 250px;
}

.ella-search-card-media-wrapper .ella-room-slider-wrapper {
	height: 100% !important;
	border-radius: 0 !important;
}

.ella-search-card-media-wrapper .ella-room-slider-track {
	height: 100% !important;
}

.ella-search-card-media-wrapper .ella-room-slide {
	height: 100% !important;
}

.ella-search-card-media-wrapper .ella-room-slide img {
	height: 100% !important;
	object-fit: cover !important;
}

.ella-search-card-details {
	width: 62%;
	padding: 24px 32px;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}

/* Details Column Area styling */
.ella-search-card-title-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 12px;
	gap: 16px;
}

.ella-search-card-title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.35;
	color: #0f172a;
	margin: 0;
}

.ella-search-card-title a {
	color: #0f172a;
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.ella-search-card-title a:hover {
	color: #f25b54;
}

.ella-search-card-tag {
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 10px;
	color: #16a34a;
	background-color: #f0fdf4;
	border: 1px solid #dcfce7;
	padding: 4px 8px;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	flex-shrink: 0;
}

/* Icons Row Attributes */
.ella-search-card-attributes {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 16px;
	border-bottom: 1px solid #f8fafc;
	padding-bottom: 12px;
}

.ella-search-attr-item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: #64748b;
}

.ella-search-attr-item svg {
	color: #94a3b8;
}

/* Excerpt text block */
.ella-search-card-excerpt {
	font-family: 'Inter', sans-serif;
	font-size: 13.5px;
	line-height: 1.6;
	color: #64748b;
	margin-bottom: 24px;
}

.ella-search-card-excerpt p {
	margin: 0;
}

/* Price and selection footer action */
.ella-search-card-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
	border-top: 1px solid #f1f5f9;
	padding-top: 18px;
	gap: 16px;
}

.ella-search-card-price-block {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.ella-search-price-label {
	font-family: 'Inter', sans-serif;
	font-size: 12.5px;
	color: #64748b;
}

.ella-search-price-label strong {
	font-family: 'Outfit', sans-serif;
	font-weight: 800;
	font-size: 22px;
	color: #0f172a;
}

.ella-search-price-sub {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	color: #94a3b8;
}

.ella-search-card-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ella-btn-search-details {
	display: inline-flex;
	align-items: center;
	border: 1.5px solid #e2e8f0;
	background-color: #ffffff;
	color: #475569;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 11.5px;
	padding: 10px 18px;
	border-radius: 6px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none !important;
	transition: all 0.2s ease;
}

.ella-btn-search-details:hover {
	color: #f25b54;
	border-color: #f25b54;
	background-color: #fffdfd;
}

/* MotoPress search results Select Book button customization */
.ella-search-select-wrapper .mphb-reserve-room-section {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

.ella-search-select-wrapper .mphb-reserve-room-section .mphb-book-button {
	display: inline-flex !important;
	align-items: center !important;
	background-color: #f25b54 !important;
	color: #ffffff !important;
	font-family: 'Outfit', sans-serif !important;
	font-weight: 700 !important;
	font-size: 11.5px !important;
	padding: 11px 20px !important;
	border-radius: 6px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	border: none !important;
	cursor: pointer !important;
	box-shadow: 0 4px 10px rgba(242, 91, 84, 0.15) !important;
	transition: all 0.2s ease !important;
	width: auto !important;
}

.ella-search-select-wrapper .mphb-reserve-room-section .mphb-book-button:hover {
	background-color: #e04a43 !important;
	box-shadow: 0 6px 14px rgba(242, 91, 84, 0.25) !important;
}

/* Hide Quantity input fields on search cards if present */
.ella-search-select-wrapper .mphb-reserve-room-section .mphb-rooms-quantity-wrapper {
	display: none !important;
}

/* ==========================================================================
   Responsive overrides for search results
   ========================================================================== */
@media (max-width: 991px) {
	.ella-search-horizontal-card {
		flex-direction: column;
	}

	.ella-search-card-media-wrapper {
		width: 100%;
		height: 250px;
	}

	.ella-search-card-details {
		width: 100%;
		padding: 24px;
	}
}

@media (max-width: 768px) {
	.ella-search-intro-block {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.ella-search-criteria-bar {
		flex-direction: column;
		align-items: stretch;
		padding: 20px;
		gap: 16px;
	}

	.ella-criteria-col:not(:last-child) {
		border-right: none;
		border-bottom: 1.5px solid #f1f5f9;
		padding-right: 0;
		padding-bottom: 12px;
	}

	.ella-btn-change-search {
		width: 100%;
		justify-content: center;
	}

	.ella-search-results-sub-bar {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}

	.ella-search-card-footer {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.ella-search-card-actions {
		width: 100%;
	}

	.ella-btn-search-details,
	.ella-search-select-wrapper,
	.ella-search-select-wrapper .mphb-reserve-room-section,
	.ella-search-select-wrapper .mphb-reserve-room-section .mphb-book-button {
		flex-grow: 1;
		width: 100% !important;
		justify-content: center !important;
		text-align: center !important;
	}
}

/* Active Reservation Cart Alert Box Styling */
.ella-active-cart-title {
	font-family: 'Outfit', sans-serif !important;
	font-weight: 800 !important;
	font-size: 13px !important;
	color: #f25b54 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	margin: 0 0 12px 0 !important;
	text-align: left !important;
}

.ella-active-cart-alert {
	background-color: #fef2f2 !important;
	/* Soft warm light red */
	border: 1.5px dashed #fca5a5 !important;
	/* Soft coral dashed border */
	border-radius: 12px !important;
	padding: 24px 28px !important;
	box-shadow: 0 4px 10px rgba(242, 91, 84, 0.03) !important;
	margin: 0 0 40px 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 16px !important;
}

.ella-active-cart-alert .mphb-reservation-details {
	width: 100% !important;
}

/* Selected rooms list styling inside cart */
.ella-active-cart-alert .mphb-reservation-details ul {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 16px 0 !important;
}

.ella-active-cart-alert .mphb-reservation-details ul li {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	padding: 12px 0 !important;
	border-bottom: 1px solid #fee2e2 !important;
	/* warm border */
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	color: #1e293b !important;
	font-weight: 600 !important;
}

.ella-active-cart-alert .mphb-reservation-details ul li a {
	color: #ef4444 !important;
	text-decoration: none !important;
	font-weight: 700 !important;
	margin-left: 12px !important;
	font-size: 12px !important;
	text-transform: uppercase !important;
}

.ella-active-cart-alert .mphb-reservation-details ul li a:hover {
	color: #dc2626 !important;
}

/* Cart total price section */
.ella-active-cart-alert .mphb-cart-total-price {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	font-family: 'Outfit', sans-serif !important;
	font-size: 16px !important;
	font-weight: 800 !important;
	color: #0f172a !important;
	margin: 0 0 16px 0 !important;
	border-bottom: none !important;
	padding: 0 !important;
}

.ella-active-cart-alert .mphb-cart-total-price-title {
	font-weight: 700 !important;
	color: #475569 !important;
}

/* Cart Confirm Reservation Button styling - keeping button styles exact across template */
.ella-active-cart-alert .mphb-confirm-reservation {
	align-self: flex-end !important;
	background-color: #f25b54 !important;
	color: #ffffff !important;
	font-family: 'Outfit', sans-serif !important;
	font-weight: 700 !important;
	font-size: 0 !important;
	/* Hide original text */
	padding: 11px 24px !important;
	border-radius: 6px !important;
	/* Exact match with loops AUSWÄHLEN */
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	border: none !important;
	cursor: pointer !important;
	box-shadow: 0 4px 10px rgba(242, 91, 84, 0.15) !important;
	transition: all 0.2s ease !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-decoration: none !important;
}

.ella-active-cart-alert .mphb-confirm-reservation::after {
	content: "JETZT BUCHEN" !important;
	font-size: 11.5px !important;
	font-weight: 700 !important;
	color: #ffffff !important;
}

.ella-active-cart-alert .mphb-confirm-reservation:hover {
	background-color: #e04a43 !important;
	box-shadow: 0 6px 14px rgba(242, 91, 84, 0.25) !important;
}

/* Hide empty cart message inside active cart container */
.ella-active-cart-alert .mphb-empty-cart-message {
	display: none !important;
}

@media (max-width: 768px) {
	.ella-active-cart-alert .mphb-confirm-reservation {
		width: 100% !important;
		text-align: center !important;
		justify-content: center !important;
	}
}

/* Change Search Form and Toggle Button Styling */
.ella-btn-change-search-toggle {
	display: inline-flex;
	align-items: center;
	background-color: #f1f5f9;
	color: #475569;
	border: none;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 11.5px;
	padding: 12px 20px;
	border-radius: 8px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	cursor: pointer;
	transition: all 0.2s ease;
}

.ella-btn-change-search-toggle:hover {
	background-color: #e2e8f0;
	color: #0f172a;
}

.ella-change-search-form-container {
	background-color: #ffffff !important;
	border: 1.5px solid #e2e8f0 !important;
	border-radius: 16px !important;
	padding: 24px 32px !important;
	margin-top: -36px !important;
	/* sits cleanly under criteria bar */
	margin-bottom: 40px !important;
	box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.02), 0 10px 15px -3px rgba(15, 23, 42, 0.04) !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

.ella-horizontal-change-search form {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-end !important;
	gap: 16px !important;
	width: 100% !important;
}

.ella-horizontal-change-search form p {
	margin: 0 !important;
	flex-grow: 1 !important;
	display: flex !important;
	flex-direction: column !important;
}

.ella-horizontal-change-search form label {
	font-family: 'Inter', sans-serif !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	color: #94a3b8 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	margin-bottom: 6px !important;
}

.ella-horizontal-change-search form input[type="text"],
.ella-horizontal-change-search form select {
	font-family: 'Outfit', sans-serif !important;
	font-weight: 700 !important;
	font-size: 13.5px !important;
	color: #334155 !important;
	border: 1.5px solid #e2e8f0 !important;
	border-radius: 8px !important;
	padding: 10px 14px !important;
	background-color: #ffffff !important;
	height: 42px !important;
	box-sizing: border-box !important;
	width: 100% !important;
}

.ella-horizontal-change-search form input[type="submit"] {
	background-color: #f25b54 !important;
	color: #ffffff !important;
	font-family: 'Outfit', sans-serif !important;
	font-weight: 700 !important;
	font-size: 11.5px !important;
	padding: 0 24px !important;
	height: 42px !important;
	border-radius: 6px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	border: none !important;
	cursor: pointer !important;
	box-shadow: 0 4px 10px rgba(242, 91, 84, 0.15) !important;
	transition: all 0.2s ease !important;
	margin: 0 !important;
}

.ella-horizontal-change-search form input[type="submit"]:hover {
	background-color: #e04a43 !important;
	box-shadow: 0 6px 14px rgba(242, 91, 84, 0.25) !important;
}

@media (max-width: 768px) {
	.ella-horizontal-change-search form {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.ella-horizontal-change-search form input[type="submit"] {
		width: 100% !important;
	}

	.ella-change-search-form-container {
		margin-top: -24px !important;
		padding: 20px !important;
	}
}

/* ==========================================================================
   THEME GLOBAL BASE — Body, Font, Box-sizing
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	padding: 0;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.65;
	color: #334155;
	background: #ffffff;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	text-decoration: none;
	color: inherit;
}

/* ==========================================================================
   THEME HEADER — Premium sticky nav
   ========================================================================== */
.ella-premium-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 9000;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid rgba(226, 232, 240, 0.8);
	box-shadow: 0 2px 20px rgba(15, 23, 42, 0.06);
}

.ella-header-nav-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 28px;
	height: 68px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.ella-brand-logo a {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
	text-decoration: none;
}

.ella-logo-name {
	font-family: 'Outfit', sans-serif;
	font-size: 17px;
	font-weight: 700;
	color: #1e293b;
	letter-spacing: -0.3px;
}

.ella-logo-tagline {
	font-size: 9px;
	font-weight: 600;
	color: #f3615a;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.ella-horizontal-nav {
	flex: 1;
	display: flex;
	justify-content: center;
}

.ella-nav-menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 6px;
}

.ella-nav-menu-list li a {
	display: block;
	padding: 7px 14px;
	font-size: 13px;
	font-weight: 600;
	color: #475569;
	text-transform: uppercase;
	letter-spacing: 0.8px;
	border-radius: 6px;
	transition: color 0.2s, background 0.2s;
}

.ella-nav-menu-list li a:hover,
.ella-nav-menu-list li a.active {
	color: #f3615a;
	background: rgba(243, 97, 90, 0.07);
}

.ella-header-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ella-btn-header-buchen {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 20px;
	background: #f3615a;
	color: #ffffff !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	border-radius: 8px;
	transition: background 0.2s, transform 0.15s;
	white-space: nowrap;
}

.ella-btn-header-buchen:hover {
	background: #e0524b;
	transform: translateY(-1px);
}

.ella-mobile-menu-toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	color: #1e293b;
	padding: 6px;
	line-height: 0;
}

/* Mobile Drawer */
.ella-mobile-nav-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
	z-index: 10000;
}

.ella-mobile-nav-drawer {
	position: absolute;
	top: 0;
	right: 0;
	width: min(85vw, 320px);
	height: 100%;
	background: #ffffff;
	overflow-y: auto;
	padding: 24px;
	display: flex;
	flex-direction: column;
}

.ella-mobile-drawer-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 24px;
}

.ella-drawer-title {
	font-size: 15px;
	font-weight: 700;
	color: #1e293b;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.ella-mobile-menu-close {
	background: none;
	border: none;
	font-size: 28px;
	cursor: pointer;
	color: #64748b;
	line-height: 1;
	padding: 0;
}

.ella-mobile-menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ella-mobile-menu-list li a {
	display: block;
	padding: 13px 16px;
	font-size: 14px;
	font-weight: 600;
	color: #334155;
	border-radius: 8px;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	transition: background 0.2s;
}

.ella-mobile-menu-list li a:hover {
	background: #f1f5f9;
	color: #f3615a;
}

.ella-mobile-menu-list li.current-menu-item a,
.ella-mobile-menu-list li.current_page_item a {
	color: #f3615a !important;
	background: #fff8f8;
}


/* ==========================================================================
   THEME FOOTER
   ========================================================================== */
.ella-footer {
	background: #1e293b;
	color: rgba(255, 255, 255, 0.8);
	padding: 60px 0 30px;
}

.ella-footer-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 28px;
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr;
	gap: 48px;
}

.ella-footer-brand-name {
	font-family: 'Outfit', sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: #ffffff;
	display: block;
	margin-bottom: 4px;
}

.ella-footer-tagline {
	font-size: 10px;
	font-weight: 600;
	color: #f3615a;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	display: block;
	margin-bottom: 16px;
}

.ella-footer-address-block p {
	margin: 4px 0;
	font-size: 13.5px;
	line-height: 1.6;
}

.ella-footer-col-title {
	font-size: 11px;
	font-weight: 700;
	color: rgba(255, 255, 255, 0.4);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-bottom: 16px;
}

.ella-footer-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ella-footer-nav-list li a {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.7);
	transition: color 0.2s;
}

.ella-footer-nav-list li a:hover {
	color: #f3615a;
}

.ella-footer-contact-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ella-footer-contact-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 13.5px;
}

.ella-footer-contact-item a {
	color: rgba(255, 255, 255, 0.7);
}

.ella-footer-contact-item a:hover {
	color: #f3615a;
}

.ella-footer-contact-icon {
	color: #f3615a;
	flex-shrink: 0;
	margin-top: 1px;
}

.ella-footer-bottom {
	max-width: 1200px;
	margin: 40px auto 0;
	padding: 24px 28px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.4);
}

.ella-footer-social {
	display: flex;
	gap: 16px;
}

.ella-footer-social a {
	color: rgba(255, 255, 255, 0.5);
	transition: color 0.2s;
}

.ella-footer-social a:hover {
	color: #f3615a;
}

/* ==========================================================================
   GLOBAL SECTION UTILITIES
   ========================================================================== */
.ella-section {
	padding: 90px 0;
}

.ella-container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 28px;
}

.ella-bg-light {
	background: #f8fafc;
}

.ella-bg-gray {
	background: #f1f5f9;
}

.ella-bg-dark {
	background: #1e293b;
	color: #ffffff;
}

.ella-center-text {
	text-align: center;
}

.ella-heading-wrap {
	margin-bottom: 32px;
}

.ella-heading-wrap.center-align {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.ella-heading-wrap.left-align {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.ella-section-title {
	font-family: 'Outfit', sans-serif;
	font-size: clamp(22px, 3.5vw, 34px);
	font-weight: 700;
	color: #1e293b;
	margin: 0 0 12px;
	letter-spacing: -0.5px;
	line-height: 1.25;
}

.ella-title-divider {
	display: block;
	width: 48px;
	height: 3px;
	background: #f3615a;
	border-radius: 2px;
}

.ella-subtitle {
	font-size: 13px;
	font-weight: 600;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 2px;
	margin-bottom: 8px;
}

/* Buttons */
.ella-btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 12px 24px;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	border: 2px solid transparent;
	cursor: pointer;
	transition: all 0.2s;
	text-decoration: none;
}

.ella-btn-coral {
	background: #f3615a;
	color: #ffffff !important;
	border-color: #f3615a;
}

.ella-btn-coral:hover {
	background: #e0524b;
	border-color: #e0524b;
	transform: translateY(-1px);
}

.ella-btn-coral-outline {
	background: transparent;
	color: #f3615a !important;
	border-color: #f3615a;
}

.ella-btn-coral-outline:hover {
	background: #f3615a;
	color: #ffffff !important;
	transform: translateY(-1px);
}

.ella-btn-lg {
	padding: 15px 32px;
	font-size: 14px;
}

.ella-intro-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}

/* ==========================================================================
   SECTION 1 — Hero Fading Slider
   ========================================================================== */
.ella-hero-slider-section {
	position: relative;
	height: 100vh;
	min-height: 560px;
	overflow: hidden;
}

.ella-hero-slider {
	position: absolute;
	inset: 0;
}

.ella-hero-slide {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	opacity: 0;
	transition: opacity 1.4s ease-in-out;
}

.ella-hero-slide.active {
	opacity: 1;
}

.ella-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom,
			rgba(10, 15, 30, 0.35) 0%,
			rgba(10, 15, 30, 0.15) 50%,
			rgba(10, 15, 30, 0.6) 100%);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 100px 24px 48px;
}

.ella-hero-content {
	text-align: center;
}

.ella-hero-logo {
	width: 64px;
	height: 64px;
	object-fit: contain;
	margin: 0 auto 20px;
	filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));
}

.ella-hero-title {
	font-family: 'Outfit', sans-serif;
	font-size: clamp(36px, 7vw, 72px);
	font-weight: 800;
	color: #ffffff;
	margin: 0 0 12px;
	letter-spacing: -1px;
	line-height: 1.1;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.5);
}

.ella-hero-tagline {
	font-size: clamp(12px, 2vw, 15px);
	font-weight: 600;
	color: rgba(255, 255, 255, 0.9);
	letter-spacing: 4px;
	text-transform: uppercase;
	margin: 0;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);
}

.ella-scroll-indicator {
	position: absolute;
	bottom: 36px;
	left: 50%;
	transform: translateX(-50%);
	animation: ella-scroll-bob 2s ease-in-out infinite;
}

.ella-mouse-wheel {
	animation: ella-wheel-scroll 2s ease-in-out infinite;
}

@keyframes ella-scroll-bob {

	0%,
	100% {
		transform: translateX(-50%) translateY(0);
	}

	50% {
		transform: translateX(-50%) translateY(8px);
	}
}

@keyframes ella-wheel-scroll {
	0% {
		cy: 11;
		opacity: 1;
	}

	80% {
		cy: 22;
		opacity: 0;
	}

	100% {
		cy: 11;
		opacity: 0;
	}
}

/* ==========================================================================
   SECTION 2 — Intro / About
   ========================================================================== */
.ella-grid-2col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
}

.ella-intro-headline {
	font-family: 'Outfit', sans-serif;
	font-size: clamp(18px, 2.5vw, 24px);
	font-weight: 600;
	color: #1e293b;
	margin: 0 0 16px;
	line-height: 1.35;
}

.ella-intro-paragraph {
	font-size: 15px;
	color: #475569;
	line-height: 1.75;
	margin: 0 0 14px;
}

/* Circular collage grid */
.ella-intro-gallery-block {
	position: relative;
}

.ella-circular-collage {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(3, 1fr);
	gap: 14px;
	max-width: 420px;
	margin: 0 auto;
}

.ella-collage-circle {
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	overflow: hidden;
	border: 3px solid #ffffff;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.13);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.ella-collage-circle:hover {
	transform: scale(1.06);
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.2);
}

.ella-collage-circle img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ella-gallery-subtext {
	text-align: center;
	font-size: 13px;
	color: #94a3b8;
	margin-top: 18px;
}

.ella-gallery-subtext a {
	color: #f3615a;
	font-weight: 600;
}

/* ==========================================================================
   SECTION 3 — Icon Highlights Row
   ========================================================================== */
.ella-highlights-row-section {
	padding: 40px 0;
	background: #ffffff;
	border-top: 1px solid #f1f5f9;
	border-bottom: 1px solid #f1f5f9;
}

.ella-highlights-flex {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 48px;
	flex-wrap: wrap;
}

.ella-hl-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	text-align: center;
}

.ella-hl-icon-wrap {
	width: 72px;
	height: 72px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ella-hl-icon-wrap img {
	width: 72px;
	height: 72px;
	object-fit: contain;
}

.ella-hl-card h4 {
	font-family: 'Outfit', sans-serif;
	font-size: 13px;
	font-weight: 700;
	color: #1e293b;
	margin: 0;
	text-transform: uppercase;
	letter-spacing: 0.8px;
}

/* ==========================================================================
   SECTION 4 & 7 — Split Layout (text + image pane)
   ========================================================================== */
.ella-split-section {
	overflow: hidden;
}

.ella-split-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 540px;
}

.ella-split-text-pane {
	padding: 80px 64px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.ella-split-image-pane {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	min-height: 400px;
}

.ella-split-subtext {
	font-size: 15px;
	color: #475569;
	line-height: 1.75;
	margin: 0 0 28px;
}

/* Amenity items */
.ella-amenity-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: 8px;
}

.ella-amenity-item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.ella-amenity-icon {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	background: rgba(243, 97, 90, 0.08);
	color: #f3615a;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ella-amenity-content h4 {
	font-size: 14px;
	font-weight: 700;
	color: #1e293b;
	margin: 0 0 4px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.ella-amenity-content p {
	font-size: 13.5px;
	color: #64748b;
	margin: 0;
	line-height: 1.6;
}

/* ==========================================================================
   SECTION 5 — Gastgeber / Host Section
   ========================================================================== */
.ella-host-section {
	padding: 90px 0;
}

.ella-host-profile-img {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	object-fit: cover;
	border: 4px solid #ffffff;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
	margin: 0 auto 28px;
}

.ella-title-icon-divider {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 10px auto;
}

.ella-title-icon-divider img {
	width: 36px;
	height: 36px;
	object-fit: contain;
}

.ella-line-left,
.ella-line-right {
	flex: 1;
	height: 1px;
	background: #cbd5e1;
	max-width: 120px;
}

.ella-host-description {
	max-width: 740px;
	margin: 24px auto;
	font-size: 15px;
	color: #475569;
	line-height: 1.8;
	text-align: center;
}

.ella-host-description p {
	margin: 0 0 16px;
}

.ella-host-meta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	font-weight: 600;
	color: #64748b;
	margin-top: 12px;
}

.ella-meta-icon {
	color: #f3615a;
	flex-shrink: 0;
}

/* ==========================================================================
   SECTION 6 — Testimonials
   ========================================================================== */
.ella-testimonials-section {
	overflow: hidden;
}

.ella-testimonials-grid {
	display: grid;
	grid-template-columns: 1fr 1.6fr;
	min-height: 480px;
}

.ella-booking-award-pane {
	background: linear-gradient(135deg, #003580 0%, #0051a3 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 60px 48px;
}

.ella-award-container {
	text-align: center;
	color: #ffffff;
}

.ella-award-sub {
	font-size: 11px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.6);
	text-transform: uppercase;
	letter-spacing: 2px;
	display: block;
	margin-bottom: 12px;
}

.ella-award-title {
	font-family: 'Outfit', sans-serif;
	font-size: clamp(18px, 2.5vw, 26px);
	font-weight: 700;
	color: #ffffff;
	margin: 0 0 28px;
	line-height: 1.3;
}

.ella-award-badge-card {
	background: #ffffff;
	border-radius: 16px;
	overflow: hidden;
	display: grid;
	grid-template-columns: 1fr auto;
	max-width: 320px;
	margin: 0 auto;
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.25);
}

.ella-badge-logo-area {
	padding: 20px 20px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
}

.ella-logo-b {
	font-family: 'Outfit', sans-serif;
	font-size: 18px;
	font-weight: 800;
	color: #003580;
}

.ella-logo-award-txt {
	font-size: 11px;
	color: #64748b;
	font-weight: 500;
	line-height: 1.3;
}

.ella-badge-score-area {
	background: #003580;
	padding: 20px 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.ella-score-number {
	font-family: 'Outfit', sans-serif;
	font-size: 36px;
	font-weight: 800;
	color: #ffffff;
	line-height: 1;
}

.ella-score-label {
	font-size: 10px;
	color: rgba(255, 255, 255, 0.7);
	font-weight: 500;
	text-align: center;
	margin-top: 4px;
}

.ella-reviews-pane {
	padding: 60px 64px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.ella-trustindex-container {
	margin-top: 24px;
}

.ella-reviews-bottom-logo {
	max-width: 180px;
	margin-top: 32px;
	opacity: 0.7;
}

/* ==========================================================================
   SECTION 7 — Contact list styles
   ========================================================================== */
.ella-contact-list {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-top: 8px;
}

.ella-contact-item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.ella-contact-icon {
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	background: rgba(243, 97, 90, 0.08);
	color: #f3615a;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ella-contact-link-text {
	font-size: 14.5px;
	color: #334155;
	font-weight: 500;
	line-height: 1.55;
	padding-top: 10px;
}

.ella-contact-static-text {
	font-size: 14.5px;
	color: #334155;
	font-weight: 500;
	padding-top: 10px;
	display: block;
}

.ella-contact-link-text:hover {
	color: #f3615a;
}

/* ==========================================================================
   SECTION 8 — Reservierung / Booking CTA
   ========================================================================== */
.ella-booking-options-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-top: 24px;
}

.ella-or-divider {
	font-size: 12px;
	font-weight: 600;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* ==========================================================================
   BOOKING MODAL — Lightweight Custom Popup
   ========================================================================== */
.ella-availability-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
}

.ella-availability-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.65);
	backdrop-filter: blur(4px);
}

.ella-availability-modal-card {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: #ffffff;
	border-radius: 20px;
	width: min(640px, 95vw);
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.3);
}

.ella-modal-card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 24px 28px 20px;
	border-bottom: 1px solid #f1f5f9;
}

.ella-modal-card-header h3 {
	font-family: 'Outfit', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: #1e293b;
	margin: 0;
	letter-spacing: 0.5px;
}

.ella-modal-card-close {
	background: none;
	border: none;
	font-size: 28px;
	cursor: pointer;
	color: #94a3b8;
	line-height: 1;
	padding: 0;
	transition: color 0.2s;
}

.ella-modal-card-close:hover {
	color: #f3615a;
}

.ella-modal-card-body {
	padding: 24px 28px 32px;
}

.ella-modal-card-body p {
	font-size: 14px;
	color: #64748b;
	line-height: 1.7;
	margin: 0 0 12px;
}

.ella-modal-form-wrapper {
	margin-top: 20px;
}

/* ==========================================================================
   RESPONSIVE BREAKPOINTS — Homepage
   ========================================================================== */
@media (max-width: 1024px) {
	.ella-grid-2col {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.ella-circular-collage {
		max-width: 340px;
	}

	.ella-split-grid {
		grid-template-columns: 1fr;
	}

	.ella-split-image-pane {
		min-height: 320px;
		order: -1;
	}

	.ella-split-text-pane {
		padding: 60px 36px;
	}

	.ella-testimonials-grid {
		grid-template-columns: 1fr;
	}

	.ella-booking-award-pane {
		padding: 48px 32px;
	}

	.ella-reviews-pane {
		padding: 48px 32px;
	}
}

@media (max-width: 768px) {
	.ella-premium-header .ella-horizontal-nav {
		display: none;
	}

	.ella-mobile-menu-toggle {
		display: flex;
	}

	.ella-btn-header-buchen {
		display: none;
	}

	.ella-hero-title {
		font-size: clamp(28px, 9vw, 48px);
	}

	.ella-section {
		padding: 60px 0;
	}

	.ella-circular-collage {
		max-width: 280px;
		gap: 10px;
	}

	.ella-highlights-flex {
		gap: 24px;
	}

	.ella-hl-icon-wrap {
		width: 56px;
		height: 56px;
	}

	.ella-hl-icon-wrap img {
		width: 56px;
		height: 56px;
	}

	.ella-split-text-pane {
		padding: 48px 24px;
	}

	.ella-footer-container {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.ella-footer-bottom {
		flex-direction: column;
		text-align: center;
	}
}

@media (max-width: 480px) {
	.ella-header-nav-container {
		padding: 0 18px;
	}

	.ella-hero-overlay {
		padding-top: 80px;
	}

	.ella-award-badge-card {
		max-width: 260px;
	}

	.ella-booking-options-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.ella-booking-options-actions .ella-btn {
		text-align: center;
		justify-content: center;
	}
}

/* ==========================================================================
   ACTUAL FOOTER CLASSES (from footer.php)
   ========================================================================== */
.ella-premium-footer {
	background: #1e293b;
	color: rgba(255, 255, 255, 0.75);
	padding: 64px 0 0;
}

.ella-footer-grid {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 28px;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1.5fr;
	gap: 48px;
}

.ella-footer-logo-link {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
	margin-bottom: 16px;
}

.ella-footer-logo-name {
	font-family: 'Outfit', sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: #ffffff;
}

.ella-footer-logo-tagline {
	font-size: 9px;
	font-weight: 600;
	color: #f3615a;
	letter-spacing: 2.5px;
	text-transform: uppercase;
}

.ella-footer-desc {
	font-size: 13.5px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.55);
	margin: 0;
}

.ella-footer-heading {
	font-size: 11px;
	font-weight: 700;
	color: rgba(255, 255, 255, 0.35);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin: 0 0 16px;
}

.ella-footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ella-footer-menu li a {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.65);
	transition: color 0.2s;
}

.ella-footer-menu li a:hover {
	color: #f3615a;
}

.ella-footer-contact-text {
	font-size: 13.5px;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.65);
	margin: 0;
}

.ella-footer-contact-text a {
	color: rgba(255, 255, 255, 0.65);
	transition: color 0.2s;
}

.ella-footer-contact-text a:hover {
	color: #f3615a;
}

.ella-footer-bottom {
	margin-top: 48px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding: 20px 28px;
}

.ella-footer-bottom-container {
	max-width: 1180px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}

.ella-copyright-text {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.35);
	margin: 0;
}

.ella-footer-social-icons {
	display: flex;
	gap: 16px;
}

.ella-footer-social-icons a {
	color: rgba(255, 255, 255, 0.4);
	transition: color 0.2s;
	line-height: 0;
}

.ella-footer-social-icons a:hover {
	color: #f3615a;
}

/* Ensure content clears fixed header */
.ella-hero-slider-section {
	padding-top: 0 !important;
}

@media (max-width: 1024px) {
	.ella-footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 36px;
	}
}

@media (max-width: 640px) {
	.ella-footer-grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.ella-footer-bottom-container {
		flex-direction: column;
		text-align: center;
	}
}

/* ==========================================================================
   MOTOPRESS BOOKING JOURNEY — All Page Styles
   Version 1.1.0
   ========================================================================== */

/* ------------------------------------------------------------------
   HERO SEARCH BAR
   ------------------------------------------------------------------ */
.ella-hero-search-bar {
	margin-top: 36px;
	width: 100%;
	max-width: 820px;
}

.ella-hero-search-form {
	display: flex;
	align-items: stretch;
	background: rgba(255, 255, 255, 0.97);
	border-radius: 14px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
	overflow: hidden;
	backdrop-filter: blur(8px);
}

.ella-hero-search-field {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 14px 20px;
	cursor: pointer;
	min-width: 0;
	transition: background 0.2s;
}

.ella-hero-search-field:hover {
	background: rgba(243, 97, 90, 0.04);
}

.ella-hero-search-field label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 10px;
	font-weight: 700;
	color: #f3615a;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	margin-bottom: 5px;
	cursor: pointer;
}

.ella-hero-datepick {
	border: none !important;
	outline: none !important;
	background: transparent !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #1e293b !important;
	padding: 0 !important;
	width: 100% !important;
	cursor: pointer !important;
	font-family: 'Inter', sans-serif !important;
}

.ella-hero-datepick::placeholder {
	color: #94a3b8 !important;
	font-weight: 400 !important;
}

.ella-hero-select {
	border: none !important;
	outline: none !important;
	background: transparent !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #1e293b !important;
	padding: 0 !important;
	width: 100% !important;
	cursor: pointer !important;
	font-family: 'Inter', sans-serif !important;
	-webkit-appearance: none;
	appearance: none;
}

.ella-hero-search-sep {
	width: 1px;
	background: #e2e8f0;
	margin: 12px 0;
	flex-shrink: 0;
}

.ella-hero-search-guests {
	flex: 0.7;
}

.ella-hero-search-btn {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0 28px;
	background: #f3615a;
	color: #ffffff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.5px;
	border: none;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
	font-family: 'Outfit', sans-serif;
	flex-shrink: 0;
}

.ella-hero-search-btn:hover {
	background: #e0524b;
}

/* MotoPress datepicker injection when opened from hero */
.ella-hero-search-bar .hasDatepicker {
	cursor: pointer;
}

/* ------------------------------------------------------------------
   SEARCH RESULTS PAGE — Cards & Layout
   ------------------------------------------------------------------ */
.ella-search-page-wrap {
	padding-top: 68px;
	min-height: 100vh;
	background: #f8fafc;
}

/* Info header block (search-results-info.php) */
.ella-search-intro-block {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 40px 28px 24px;
	max-width: 1180px;
	margin: 0 auto;
	flex-wrap: wrap;
	gap: 16px;
}

.ella-search-subhead {
	display: block;
	font-size: 10px;
	font-weight: 700;
	color: #f3615a;
	letter-spacing: 2px;
	text-transform: uppercase;
	margin-bottom: 6px;
}

.ella-search-main-title {
	font-family: 'Outfit', sans-serif;
	font-size: clamp(24px, 4vw, 36px);
	font-weight: 700;
	color: #1e293b;
	margin: 0 0 8px;
	letter-spacing: -0.5px;
}

.ella-search-subtext {
	font-size: 14px;
	color: #64748b;
	line-height: 1.6;
	margin: 0;
}

.ella-intro-price-badge {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 16px 20px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.ella-icon-tag {
	color: #f3615a;
}

.ella-intro-badge-content {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.ella-badge-lbl {
	font-size: 14px;
	font-weight: 600;
	color: #1e293b;
}

.ella-badge-lbl strong {
	color: #f3615a;
}

.ella-badge-sub {
	font-size: 11px;
	color: #94a3b8;
}

/* Criteria bar */
.ella-search-criteria-bar {
	display: flex;
	align-items: center;
	gap: 0;
	max-width: 1180px;
	margin: 0 auto 24px;
	padding: 0 28px;
	background: #ffffff;
	border-radius: 12px;
	border: 1px solid #e2e8f0;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
	overflow: hidden;
}

.ella-criteria-col {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 18px 24px;
	flex: 1;
	border-right: 1px solid #f1f5f9;
}

.ella-criteria-col:last-of-type {
	border-right: none;
}

.ella-criteria-icon {
	color: #f3615a;
	flex-shrink: 0;
}

.ella-crit-lbl {
	display: block;
	font-size: 10px;
	font-weight: 700;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-bottom: 2px;
}

.ella-crit-val {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: #1e293b;
}

.ella-crit-sub {
	display: block;
	font-size: 12px;
	color: #64748b;
}

.ella-criteria-action {
	padding: 12px 20px;
	flex-shrink: 0;
}

.ella-btn-change-search-toggle {
	padding: 10px 18px;
	background: transparent;
	border: 2px solid #f3615a;
	color: #f3615a;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	border-radius: 8px;
	cursor: pointer;
	transition: all 0.2s;
	font-family: 'Outfit', sans-serif;
}

.ella-btn-change-search-toggle:hover {
	background: #f3615a;
	color: #ffffff;
}

/* Change search form container */
.ella-change-search-form-container {
	max-width: 1180px;
	margin: 0 auto 24px;
	padding: 0 28px;
}

.ella-horizontal-change-search {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 28px;
}

/* Make the native MPHB search form horizontal when inside the change-search container */
.ella-horizontal-change-search .mphb_sc_search_form,
.ella-horizontal-change-search form {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
	align-items: flex-end !important;
}

.ella-horizontal-change-search form p {
	flex: 1 !important;
	min-width: 140px !important;
	margin: 0 !important;
}

.ella-horizontal-change-search form input[type="text"],
.ella-horizontal-change-search form select {
	width: 100% !important;
	padding: 10px 14px !important;
	border: 1.5px solid #e2e8f0 !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	font-family: 'Inter', sans-serif !important;
	color: #1e293b !important;
	background: #f8fafc !important;
	transition: border-color 0.2s !important;
}

.ella-horizontal-change-search form input[type="text"]:focus,
.ella-horizontal-change-search form select:focus {
	border-color: #f3615a !important;
	outline: none !important;
}

.ella-horizontal-change-search form label {
	display: block !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	color: #64748b !important;
	text-transform: uppercase !important;
	letter-spacing: 0.8px !important;
	margin-bottom: 6px !important;
}

.ella-horizontal-change-search form input[type="submit"],
.ella-horizontal-change-search form .button {
	padding: 11px 24px !important;
	background: #f3615a !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 8px !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	letter-spacing: 0.5px !important;
	text-transform: uppercase !important;
	font-family: 'Outfit', sans-serif !important;
	transition: background 0.2s !important;
}

.ella-horizontal-change-search form input[type="submit"]:hover {
	background: #e0524b !important;
}

/* Results sub-bar */
.ella-search-results-sub-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 1180px;
	margin: 0 auto 20px;
	padding: 0 28px;
}

.ella-recommend-title {
	font-family: 'Outfit', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: #1e293b;
	margin: 0;
}

.ella-recommend-sub {
	font-size: 12px;
	color: #94a3b8;
	display: block;
	margin-top: 2px;
}

.ella-sort-label {
	font-size: 13px;
	color: #64748b;
	margin-right: 8px;
}

.ella-sort-select {
	padding: 7px 12px;
	border: 1.5px solid #e2e8f0;
	border-radius: 8px;
	font-size: 13px;
	color: #334155;
	background: #ffffff;
	cursor: pointer;
	font-family: 'Inter', sans-serif;
}

/* Search result cards list container */
.mphb-search-results-rooms {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 28px 48px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* Horizontal accommodation card */
.ella-search-horizontal-card {
	background: #ffffff;
	border-radius: 16px;
	border: 1px solid #e2e8f0;
	overflow: hidden;
	display: grid;
	grid-template-columns: 360px 1fr;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.3s ease, transform 0.2s ease;
}

.ella-search-horizontal-card:hover {
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
	transform: translateY(-2px);
}

.ella-search-card-media-wrapper {
	position: relative;
	overflow: hidden;
	height: 100%;
	min-height: 280px;
}

.ella-search-card-media-wrapper img,
.ella-search-card-media-wrapper .ella-slider-container {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

/* Ensure Swiper slider fills the card image area */
.ella-search-card-media-wrapper .swiper,
.ella-search-card-media-wrapper .ella-room-slider {
	height: 100% !important;
	min-height: 280px;
}

.ella-card-overlay-badge {
	position: absolute;
	top: auto !important;
	bottom: 12px;
	left: 12px;
	background: rgba(255, 255, 255, 0.95);
	color: #1e293b;
	font-size: 12px;
	font-weight: 700;
	padding: 5px 10px;
	border-radius: 20px;
	backdrop-filter: blur(4px);
	z-index: 10;
}

.ella-card-overlay-wishlist {
	position: absolute;
	top: 12px;
	right: 12px;
	background: rgba(255, 255, 255, 0.9);
	border: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: #94a3b8;
	transition: color 0.2s, background 0.2s;
	z-index: 10;
	backdrop-filter: blur(4px);
}

.ella-card-overlay-wishlist:hover {
	color: #f3615a;
	background: #ffffff;
}

/* Card right side details */
.ella-search-card-details {
	padding: 28px 28px 24px;
	display: flex;
	flex-direction: column;
}

.ella-search-card-title-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}

.ella-search-card-title {
	font-family: 'Outfit', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: #1e293b;
	margin: 0;
	line-height: 1.3;
	flex: 1;
}

.ella-search-card-title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s;
}

.ella-search-card-title a:hover {
	color: #f3615a;
}

.ella-search-card-tag {
	flex-shrink: 0;
	font-size: 10px;
	font-weight: 700;
	color: #0369a1;
	background: #e0f2fe;
	padding: 4px 10px;
	border-radius: 20px;
	letter-spacing: 1px;
	text-transform: uppercase;
}

/* Attributes row */
.ella-search-card-attributes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin-bottom: 14px;
}

.ella-search-attr-item {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: #475569;
	font-weight: 500;
}

.ella-search-attr-item svg {
	color: #f3615a;
	flex-shrink: 0;
}

/* Excerpt */
.ella-search-card-excerpt {
	flex: 1;
	margin-bottom: 16px;
}

.ella-search-card-excerpt p {
	font-size: 13.5px;
	color: #64748b;
	line-height: 1.65;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Card footer with price + actions */
.ella-search-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 16px;
	border-top: 1px solid #f1f5f9;
	flex-wrap: wrap;
}

.ella-search-card-price-block {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.ella-search-price-label {
	font-size: 20px;
	font-weight: 400;
	color: #1e293b;
}

.ella-search-price-label strong {
	font-weight: 800;
	color: #f3615a;
}

.ella-search-price-sub {
	font-size: 11px;
	color: #94a3b8;
}

.ella-search-card-actions {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}

.ella-btn-search-details {
	padding: 10px 18px;
	border: 2px solid #e2e8f0;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.8px;
	color: #334155;
	text-transform: uppercase;
	text-decoration: none;
	transition: all 0.2s;
	white-space: nowrap;
}

.ella-btn-search-details:hover {
	border-color: #f3615a;
	color: #f3615a;
}

/* MotoPress book button wrapper */
.ella-search-select-wrapper .mphb-reserve-room-form,
.ella-search-select-wrapper form {
	display: inline !important;
}

.ella-search-select-wrapper .button,
.ella-search-select-wrapper input[type="submit"],
.ella-search-select-wrapper .mphb_sc_search-submit-button-wrapper input {
	padding: 10px 20px !important;
	background: #f3615a !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 8px !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 0.8px !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	transition: background 0.2s !important;
	font-family: 'Outfit', sans-serif !important;
	white-space: nowrap !important;
}

.ella-search-select-wrapper .button:hover,
.ella-search-select-wrapper input[type="submit"]:hover {
	background: #e0524b !important;
}

/* No-results message */
.mphb-errors-wrapper {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 28px 48px;
}

.mphb-errors-wrapper p,
.mphb-errors-wrapper li {
	background: #fff7f7;
	border: 1px solid #fecaca;
	border-radius: 10px;
	color: #991b1b;
	padding: 16px 20px;
	font-size: 14px;
	margin: 0 0 8px;
}

/* ------------------------------------------------------------------
   SINGLE ROOM TYPE PAGE — Layout & Components
   ------------------------------------------------------------------ */
.ella-clean-booking-main {
	padding-top: 68px;
	min-height: 100vh;
	background: #f8fafc;
}

.ella-booking-card {
	max-width: 1280px;
	margin: 2rem auto;
	padding: 32px 28px 64px;
}

/* Top 2-column grid */
.ella-single-top-grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 36px;
	align-items: start;
	margin-bottom: 24px;
}

/* Left media column */
.ella-single-media-column {
	position: sticky;
	top: 84px;
}

/* Gallery / Slider area */
.ella-single-media-column .ella-room-slider,
.ella-single-media-column .swiper {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.12);
	aspect-ratio: 4 / 3;
}

.ella-single-media-column .ella-room-slider img,
.ella-single-media-column .swiper-slide img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

/* Price actions bar */
.ella-single-price-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #ffffff;
	border-radius: 12px;
	padding: 16px 20px;
	margin-top: 14px;
	border: 1px solid #e2e8f0;
	gap: 12px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
}

.ella-single-price-left {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.ella-single-price-amount {
	font-size: 18px;
	color: #1e293b;
}

.ella-single-price-amount strong {
	font-weight: 800;
	color: #f3615a;
}

.ella-single-price-tax-badge {
	font-size: 11px;
	color: #94a3b8;
}

.ella-single-price-right {
	display: flex;
	gap: 10px;
	align-items: center;
}

.ella-btn-single-merken {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 16px;
	border: 1.5px solid #e2e8f0;
	border-radius: 8px;
	background: transparent;
	color: #64748b;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s;
}

.ella-btn-single-merken:hover {
	border-color: #f3615a;
	color: #f3615a;
}

.ella-btn-single-buchen {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 20px;
	background: #f3615a;
	color: #ffffff;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 0.2s, transform 0.15s;
	white-space: nowrap;
}

.ella-btn-single-buchen:hover {
	background: #e0524b;
	transform: translateY(-1px);
}

.ella-single-price-stay-info {
	font-size: 12px;
	color: #64748b;
	margin-top: 8px;
	padding: 10px 14px;
	background: #f8fafc;
	border-radius: 8px;
	text-align: center;
}

/* Right info column */

.ella-single-category {
	display: inline-block;
	font-size: 10px;
	font-weight: 700;
	color: #f3615a;
	letter-spacing: 2px;
	text-transform: uppercase;
	margin-bottom: 10px;
}

.ella-single-title-main {
	font-family: 'Outfit', sans-serif;
	font-size: clamp(22px, 3vw, 32px);
	font-weight: 800;
	color: #1e293b;
	margin: 0 0 20px;
	line-height: 1.2;
	letter-spacing: -0.5px;
}

.ella-single-description-block {
	font-size: 14.5px;
	color: #475569;
	line-height: 1.75;
	margin-bottom: 24px;
}

.ella-single-description-block p {
	margin: 0 0 12px;
}

/* Highlights attribute grid */
.ella-single-highlights-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}

.ella-highlight-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	background: #f8fafc;
	border: 1px solid #f1f5f9;
	border-radius: 10px;
	padding: 14px;
	transition: border-color 0.2s;
}

.ella-highlight-item:hover {
	border-color: #f3615a;
}

.ella-highlight-icon {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	background: rgba(243, 97, 90, 0.08);
	color: #f3615a;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ella-highlight-content {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.ella-hl-val {
	font-size: 13px;
	font-weight: 700;
	color: #1e293b;
	display: block;
}

.ella-hl-lbl {
	font-size: 11px;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	display: block;
}

/* Divider */
.ella-single-divider {
	border: none;
	border-top: 1px solid #e2e8f0;
	margin: 32px 0;
}

/* Bottom 2-column grid */
.ella-single-bottom-grid {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 36px;
	align-items: start;
}

.ella-section-heading {
	font-family: 'Outfit', sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: #1e293b;
	margin: 0 0 20px;
	letter-spacing: -0.3px;
}

/* Details checklist */
.ella-details-checklist-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 28px;
}

.ella-checklist-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	background: #f8fafc;
	border-radius: 10px;
	border: 1px solid #f1f5f9;
}

.ella-check-icon {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	background: rgba(243, 97, 90, 0.08);
	color: #f3615a;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ella-check-content {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.ella-check-lbl {
	font-size: 11px;
	color: #94a3b8;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.ella-check-val {
	font-size: 13px;
	font-weight: 600;
	color: #1e293b;
}

/* Location card */
.ella-single-location-card {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 18px 20px;
	gap: 16px;
}

.ella-location-card-left {
	display: flex;
	align-items: center;
	gap: 14px;
}

.ella-loc-icon {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	background: rgba(243, 97, 90, 0.08);
	color: #f3615a;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ella-location-card-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.ella-loc-title {
	font-size: 14px;
	font-weight: 700;
	color: #1e293b;
}

.ella-loc-address {
	font-size: 13px;
	color: #64748b;
}

.ella-link-show-map {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: #f3615a;
	text-decoration: none;
	white-space: nowrap;
	transition: gap 0.2s;
}

.ella-link-show-map:hover {
	gap: 10px;
}

/* Sticky booking widget */
.ella-single-form-column {
	position: sticky;
	top: 84px;
}

.ella-booking-widget-card-box {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	padding: 24px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
}

.ella-widget-title {
	font-family: 'Outfit', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: #1e293b;
	margin: 0 0 20px;
}

/* MotoPress reservation form inside widget */
.ella-widget-form-wrapper .mphb_sc_checkout_form,
.ella-widget-form-wrapper form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ella-widget-form-wrapper form p {
	margin: 0;
}

.ella-widget-form-wrapper form label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.8px;
	margin-bottom: 6px;
}

.ella-widget-form-wrapper form input[type="text"],
.ella-widget-form-wrapper form select,
.ella-widget-form-wrapper input.mphb-datepick {
	width: 100% !important;
	padding: 11px 14px !important;
	border: 1.5px solid #e2e8f0 !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	color: #1e293b !important;
	background: #f8fafc !important;
	font-family: 'Inter', sans-serif !important;
	transition: border-color 0.2s !important;
	box-sizing: border-box !important;
}

.ella-widget-form-wrapper form input[type="text"]:focus,
.ella-widget-form-wrapper form select:focus {
	border-color: #f3615a !important;
	outline: none !important;
	background: #ffffff !important;
}

.ella-widget-form-wrapper form input[type="submit"],
.ella-widget-form-wrapper .button {
	width: 100% !important;
	padding: 14px !important;
	background: #f3615a !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	letter-spacing: 0.5px !important;
	text-transform: uppercase !important;
	font-family: 'Outfit', sans-serif !important;
	transition: background 0.2s, transform 0.15s !important;
}

.ella-widget-form-wrapper form input[type="submit"]:hover {
	background: #e0524b !important;
	transform: translateY(-1px) !important;
}

.ella-widget-security-badge {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 16px;
	font-size: 12px;
	color: #64748b;
	padding-top: 16px;
	border-top: 1px solid #f1f5f9;
}

.ella-widget-security-badge svg {
	color: #22c55e;
	flex-shrink: 0;
}

/* Selling points banner */
.ella-selling-points-banner {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	background: #1e293b;
	border-radius: 16px;
	overflow: hidden;
	margin-top: 40px;
}

.ella-selling-point-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 24px 20px;
	border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.ella-selling-point-item:last-child {
	border-right: none;
}

.ella-point-icon-wrapper {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	background: rgba(243, 97, 90, 0.15);
	color: #f3615a;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ella-point-content {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.ella-point-title {
	font-family: 'Outfit', sans-serif;
	font-size: 13px;
	font-weight: 700;
	color: #ffffff;
	margin: 0;
}

.ella-point-desc {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.5);
	margin: 0;
}

/* ------------------------------------------------------------------
   CHECKOUT PAGE
   ------------------------------------------------------------------ */
.ella-checkout-page {
	padding-top: 68px;
	min-height: 100vh;
	background: #f8fafc;
}

.ella-checkout-header {
	background: #ffffff;
	border-bottom: 1px solid #e2e8f0;
	padding: 24px 0;
}

.ella-checkout-breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: #94a3b8;
	margin-bottom: 10px;
}

.ella-checkout-breadcrumb a {
	color: #94a3b8;
	transition: color 0.2s;
}

.ella-checkout-breadcrumb a:hover {
	color: #f3615a;
}

.ella-checkout-breadcrumb svg {
	color: #cbd5e1;
}

.ella-checkout-breadcrumb span {
	color: #1e293b;
	font-weight: 600;
}

.ella-checkout-page-title {
	font-family: 'Outfit', sans-serif;
	font-size: 28px;
	font-weight: 700;
	color: #1e293b;
	margin: 0;
	letter-spacing: -0.5px;
}

.ella-checkout-container {
	padding-top: 32px;
	padding-bottom: 64px;
}

.ella-checkout-layout {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 28px;
	align-items: start;
}

/* Step indicator */
.ella-checkout-form-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.05);
}

.ella-checkout-steps {
	display: flex;
	align-items: center;
	padding: 24px 28px;
	background: #f8fafc;
	border-bottom: 1px solid #e2e8f0;
	gap: 0;
}

.ella-step {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	font-weight: 600;
	color: #94a3b8;
}

.ella-step-active {
	color: #1e293b;
}

.ella-step-active .ella-step-number {
	background: #f3615a;
	color: #ffffff;
}

.ella-step-number {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #e2e8f0;
	color: #94a3b8;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 700;
	flex-shrink: 0;
}

.ella-step-line {
	flex: 1;
	height: 1px;
	background: #e2e8f0;
	margin: 0 12px;
}

.ella-checkout-form-body {
	padding: 32px 28px;
}

/* MotoPress checkout form styling */
.ella-checkout-form-body .mphb_sc_checkout_form fieldset,
.ella-checkout-form-body fieldset {
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 24px;
	margin: 0 0 20px;
}

.ella-checkout-form-body legend {
	font-family: 'Outfit', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: #1e293b;
	padding: 0 8px;
}

.ella-checkout-form-body .mphb-booking-details-table,
.ella-checkout-form-body table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.ella-checkout-form-body table td,
.ella-checkout-form-body table th {
	padding: 10px 0;
	border-bottom: 1px solid #f1f5f9;
	vertical-align: middle;
}

.ella-checkout-form-body table th {
	font-weight: 700;
	color: #1e293b;
	text-align: left;
}

.ella-checkout-form-body label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.8px;
	margin-bottom: 7px;
}

.ella-checkout-form-body input[type="text"],
.ella-checkout-form-body input[type="email"],
.ella-checkout-form-body input[type="tel"],
.ella-checkout-form-body select,
.ella-checkout-form-body textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid #e2e8f0;
	border-radius: 8px;
	font-size: 14px;
	color: #1e293b;
	background: #f8fafc;
	font-family: 'Inter', sans-serif;
	transition: border-color 0.2s, background 0.2s;
	box-sizing: border-box;
}

.ella-checkout-form-body input:focus,
.ella-checkout-form-body select:focus,
.ella-checkout-form-body textarea:focus {
	border-color: #f3615a;
	outline: none;
	background: #ffffff;
}

.ella-checkout-form-body .mphb-submit-button-wrapper,
.ella-checkout-form-body p.form-row-submit {
	margin-top: 24px;
}

.ella-checkout-form-body input[type="submit"],
.ella-checkout-form-body .button-primary {
	padding: 15px 32px;
	background: #f3615a !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	letter-spacing: 0.5px;
	font-family: 'Outfit', sans-serif;
	transition: background 0.2s, transform 0.15s;
	width: 100%;
}

.ella-checkout-form-body input[type="submit"]:hover {
	background: #e0524b !important;
	transform: translateY(-1px);
}

/* Payment gateways */
.ella-checkout-form-body .mphb-payment-section {
	margin-top: 20px;
}

.ella-checkout-form-body .mphb-payment-method input[type="radio"] {
	accent-color: #f3615a;
	width: 16px;
	height: 16px;
}

/* Checkout sidebar */
.ella-checkout-sidebar {
	position: sticky;
	top: 84px;
}

.ella-checkout-summary-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.05);
	margin-bottom: 16px;
}

.ella-summary-header {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 20px 20px 16px;
	border-bottom: 1px solid #f1f5f9;
	background: #f8fafc;
}

.ella-summary-header svg {
	color: #f3615a;
}

.ella-summary-header h3 {
	font-family: 'Outfit', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: #1e293b;
	margin: 0;
}

.ella-summary-room-image {
	position: relative;
}

.ella-summary-img {
	width: 100%;
	height: 160px;
	object-fit: cover;
	display: block;
}

.ella-summary-room-name {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
	color: #ffffff;
	font-size: 13px;
	font-weight: 700;
	padding: 20px 14px 12px;
}

.ella-summary-dates-block {
	padding: 16px 20px;
}

.ella-summary-row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}

.ella-sum-col {
	display: flex;
	flex-direction: column;
	gap: 2px;
	flex: 1;
}

.ella-sum-lbl {
	font-size: 10px;
	font-weight: 700;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.ella-sum-val {
	font-size: 15px;
	font-weight: 700;
	color: #1e293b;
}

.ella-sum-sep {
	font-size: 14px;
	color: #94a3b8;
}

.ella-summary-nights-pill {
	display: inline-block;
	background: rgba(243, 97, 90, 0.1);
	color: #f3615a;
	font-size: 11px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 20px;
	margin-bottom: 10px;
}

.ella-summary-guests-row {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: #475569;
	font-weight: 500;
}

.ella-summary-guests-row svg {
	color: #f3615a;
}

.ella-summary-price-block {
	padding: 14px 20px;
	border-top: 1px solid #f1f5f9;
}

.ella-summary-price-row {
	display: flex;
	justify-content: space-between;
	font-size: 13.5px;
	color: #334155;
	padding: 5px 0;
}

.ella-sum-taxes {
	color: #94a3b8;
	font-size: 12px;
}

.ella-summary-trust-badges {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 14px 20px;
	border-top: 1px solid #f1f5f9;
	background: #f8fafc;
}

.ella-trust-item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: #64748b;
}

.ella-trust-item svg {
	color: #22c55e;
}

.ella-checkout-contact-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 18px 20px;
}

.ella-checkout-contact-card h4 {
	font-size: 14px;
	font-weight: 700;
	color: #1e293b;
	margin: 0 0 10px;
}

.ella-checkout-phone-link {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 700;
	color: #f3615a;
	text-decoration: none;
	transition: gap 0.2s;
}

.ella-checkout-phone-link:hover {
	gap: 12px;
}

/* ------------------------------------------------------------------
   STATUS PAGES (Confirmation / Pending / Error / Cancelled)
   ------------------------------------------------------------------ */
.ella-status-page {
	padding-top: 68px;
	min-height: 100vh;
	display: flex;
	align-items: center;
	padding-bottom: 80px;
}

.ella-status-success {
	background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
}

.ella-status-pending {
	background: linear-gradient(135deg, #fffbeb 0%, #fef9c3 100%);
}

.ella-status-error {
	background: linear-gradient(135deg, #fff7f7 0%, #fee2e2 100%);
}

.ella-status-cancelled {
	background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
}

.ella-status-card {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
	background: #ffffff;
	border-radius: 24px;
	padding: 56px 48px;
	box-shadow: 0 20px 80px rgba(0, 0, 0, 0.08);
}

.ella-status-icon {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 28px;
}

.ella-status-icon-success {
	background: #dcfce7;
	color: #16a34a;
}

.ella-status-icon-pending {
	background: #fef9c3;
	color: #ca8a04;
}

.ella-status-icon-error {
	background: #fee2e2;
	color: #dc2626;
}

.ella-status-icon-cancelled {
	background: #f1f5f9;
	color: #64748b;
}

.ella-status-title {
	font-family: 'Outfit', sans-serif;
	font-size: clamp(24px, 4vw, 32px);
	font-weight: 800;
	color: #1e293b;
	margin: 0 0 12px;
}

.ella-status-subtitle {
	font-size: 16px;
	color: #64748b;
	line-height: 1.65;
	margin: 0 0 32px;
}

.ella-status-content {
	text-align: left;
	margin-bottom: 32px;
	font-size: 14px;
	color: #475569;
	line-height: 1.7;
}

.ella-status-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.ella-status-content td {
	padding: 10px 0;
	border-bottom: 1px solid #f1f5f9;
}

.ella-status-content td:first-child {
	font-weight: 600;
	color: #1e293b;
	width: 40%;
}

.ella-status-actions {
	display: flex;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
}

/* ------------------------------------------------------------------
   MOTOPRESS GLOBAL DATEPICKER OVERRIDES (Keith Wood's Datepick)
   ------------------------------------------------------------------ */
.datepick-popup {
	background: #ffffff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 14px !important;
	box-shadow: 0 15px 45px rgba(0, 0, 0, 0.12) !important;
	padding: 18px !important;
	font-family: 'Inter', sans-serif !important;
	z-index: 999999 !important;
	box-sizing: border-box !important;
}

.datepick {
	background: #ffffff !important;
	border: none !important;
	width: 100% !important;
}

.datepick-nav {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	margin-bottom: 12px !important;
	height: auto !important;
}

.datepick-nav a {
	color: #f3615a !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	cursor: pointer !important;
	font-size: 13px !important;
}

.datepick-nav a:hover {
	color: #e0524b !important;
}

.datepick-month-header {
	font-family: 'Outfit', sans-serif !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	color: #1e293b !important;
	text-align: center !important;
	margin-bottom: 12px !important;
}

.datepick-month-header select {
	border: 1px solid #e2e8f0 !important;
	border-radius: 6px !important;
	padding: 4px 6px !important;
	font-size: 13px !important;
	color: #334155 !important;
	background: #f8fafc !important;
}

.datepick-month table {
	width: 100% !important;
	border-collapse: collapse !important;
}

.datepick-month th {
	font-size: 11px !important;
	color: #94a3b8 !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	padding: 6px 4px !important;
	text-align: center !important;
	border: none !important;
	background: transparent !important;
}

.datepick-month td {
	padding: 2px !important;
	text-align: center !important;
	border: none !important;
	background: transparent !important;
}

.datepick-month td a {
	display: block !important;
	width: 32px !important;
	height: 32px !important;
	line-height: 32px !important;
	border-radius: 50% !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #334155 !important;
	text-decoration: none !important;
	margin: 0 auto !important;
	transition: all 0.2s ease !important;
	background: transparent !important;
}

.datepick-month td a:hover,
.datepick-month td a.datepick-highlight {
	background: rgba(243, 97, 90, 0.1) !important;
	color: #f3615a !important;
	border-radius: 50% !important;
}

.datepick-month td a.datepick-selected {
	background: #f3615a !important;
	color: #ffffff !important;
	font-weight: 700 !important;
	border-radius: 50% !important;
}

.datepick-month td a.datepick-today {
	border: 1.5px solid #f3615a !important;
}

/* Range highlights */
.datepick-month td .mphb-datepick-range {
	background-color: rgba(243, 97, 90, 0.08) !important;
	border-radius: 0 !important;
}

/* Unavailable / blocked dates */
.datepick-month td .mphb-booked-date,
.datepick-month td .mphb-past-date,
.datepick-month td .datepick-disabled,
.datepick-month td .mphb-earlier-check-in-date,
.datepick-month td .mphb-later-max-date {
	opacity: 0.25 !important;
	color: #94a3b8 !important;
	pointer-events: none !important;
	text-decoration: line-through !important;
	background: transparent !important;
}

/* Hide unstyled default search results recommendation block */
.mphb-recommendation,
.mphb-recommendation-title,
.mphb_sc_search_results-wrapper .mphb-recommendation,
#mphb-recommendation {
	display: none !important;
}

/* Search cards fixes */
.ella-search-horizontal-card {
	display: grid !important;
	grid-template-columns: 360px 1fr !important;
}

.ella-search-horizontal-card .ella-search-card-media-wrapper {
	width: 100% !important;
	height: 100% !important;
	min-height: 280px !important;
}

.ella-search-horizontal-card .ella-search-card-details {
	width: 100% !important;
}

.ella-search-card-media-wrapper .ella-room-slider-container {
	height: 100% !important;
	aspect-ratio: auto !important;
	border-radius: 0 !important;
}

.ella-search-card-media-wrapper .ella-room-slider-wrapper {
	height: 100% !important;
}

/* Button selection state switches */
.mphb-reserve-room-section .mphb-confirm-reservation {
	display: none !important;
}

.mphb-reserve-room-section.mphb-rooms-added .mphb-book-button {
	display: none !important;
}

.mphb-reserve-room-section.mphb-rooms-added .mphb-confirm-reservation {
	display: inline-block !important;
}

/* Price Breakdown table in Checkout Sidebar */
.ella-sidebar-price-breakdown-wrapper {
	padding: 16px 20px;
	border-top: 1px solid #f1f5f9;
	background: #f8fafc;
}

.ella-sidebar-price-breakdown-wrapper table.mphb-price-breakdown {
	width: 100% !important;
	border-collapse: collapse !important;
	font-size: 13px !important;
	margin: 0 !important;
}

.ella-sidebar-price-breakdown-wrapper table.mphb-price-breakdown th,
.ella-sidebar-price-breakdown-wrapper table.mphb-price-breakdown td {
	padding: 8px 0 !important;
	border: none !important;
	border-bottom: 1px solid #f1f5f9 !important;
	background: transparent !important;
	color: #475569 !important;
	text-align: left !important;
}

.ella-sidebar-price-breakdown-wrapper table.mphb-price-breakdown th {
	font-family: 'Outfit', sans-serif !important;
	font-weight: 700 !important;
	color: #1e293b !important;
}

.ella-sidebar-price-breakdown-wrapper table.mphb-price-breakdown td:last-child,
.ella-sidebar-price-breakdown-wrapper table.mphb-price-breakdown th:last-child {
	text-align: right !important;
	font-weight: 700 !important;
	color: #1e293b !important;
}

.ella-sidebar-price-breakdown-wrapper table.mphb-price-breakdown tr:last-child td {
	border-bottom: none !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	color: #f3615a !important;
}

.ella-sidebar-price-breakdown-wrapper table.mphb-price-breakdown .mphb-price-breakdown-expand {
	color: #f3615a !important;
	text-decoration: none !important;
}


/* ------------------------------------------------------------------
   GLOBAL MOTOPRESS FORM RESET — All contexts
   ------------------------------------------------------------------ */
/* Removes WP default button-link styling from MPHB buttons */
.mphb_sc_checkout_form .button,
.mphb_reserve_room_form .button,
.mphb-reserve-room-form .button {
	text-decoration: none !important;
}

/* Required field asterisks */
.mphb-required-asterisk {
	color: #f3615a;
}

/* Price / currency display */
.mphb-price,
.mphb-period-price {
	color: #f3615a;
	font-weight: 700;
}

/* ------------------------------------------------------------------
   PAGE.PHP — Search results and listing pages
   ------------------------------------------------------------------ */
.ella-search-page-wrap.ella-page-content-wrap {
	padding-top: 68px;
}

.ella-page-content-wrap {
	padding-top: 68px;
	min-height: 100vh;
}

.ella-page-content-inner {
	max-width: 1180px;
	margin: 0 auto;
	padding: 48px 28px 80px;
}

/* ------------------------------------------------------------------
   RESPONSIVE — Booking Journey Breakpoints
   ------------------------------------------------------------------ */
@media (max-width: 1024px) {
	.ella-hero-search-form {
		flex-wrap: wrap;
		border-radius: 12px;
	}

	.ella-hero-search-field {
		flex: 1 1 40%;
		min-width: 160px;
	}

	.ella-hero-search-sep {
		display: none;
	}

	.ella-hero-search-btn {
		width: 100%;
		justify-content: center;
		padding: 16px;
	}

	.ella-search-horizontal-card {
		grid-template-columns: 300px 1fr;
	}

	.ella-single-top-grid {
		grid-template-columns: 1fr;
	}

	.ella-single-media-column {
		position: relative;
		top: auto;
	}

	.ella-single-bottom-grid {
		grid-template-columns: 1fr;
	}

	.ella-single-form-column {
		position: relative;
		top: auto;
	}

	.ella-checkout-layout {
		grid-template-columns: 1fr;
	}

	.ella-checkout-sidebar {
		position: relative;
		top: auto;
	}

	.ella-selling-points-banner {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.ella-hero-search-bar {
		margin-top: 24px;
	}

	.ella-hero-search-field {
		flex: 1 1 100%;
	}

	.ella-search-horizontal-card {
		grid-template-columns: 1fr;
	}

	.ella-search-card-media-wrapper {
		min-height: 220px;
	}

	.ella-search-criteria-bar {
		flex-wrap: wrap;
		border-radius: 0;
	}

	.ella-criteria-col {
		flex: 1 1 40%;
		border-right: none;
		border-bottom: 1px solid #f1f5f9;
	}

	.ella-criteria-col:last-of-type {
		border-bottom: none;
	}

	.ella-criteria-action {
		flex: 0 0 100%;
		padding: 12px 16px;
	}

	.ella-btn-change-search-toggle {
		width: 100%;
	}

	.ella-single-highlights-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.ella-details-checklist-grid {
		grid-template-columns: 1fr;
	}

	.ella-selling-points-banner {
		grid-template-columns: 1fr;
	}

	.ella-status-card {
		padding: 40px 24px;
	}

	.ella-status-actions {
		flex-direction: column;
	}

	.ella-status-actions .ella-btn {
		text-align: center;
		justify-content: center;
	}

	.ella-checkout-steps {
		padding: 16px;
		gap: 0;
	}

	.ella-step span {
		display: none;
	}

	.ella-checkout-form-body {
		padding: 24px 16px;
	}
}

@media (max-width: 480px) {
	.ella-search-intro-block {
		padding: 24px 16px 16px;
	}

	.ella-search-criteria-bar {
		display: none;
	}

	.ella-mphb-search-results-rooms {
		padding: 0 16px 40px;
	}

	.ella-search-card-details {
		padding: 20px 16px 18px;
	}

	.ella-search-card-footer {
		flex-direction: column;
		align-items: flex-start;
	}

	.ella-search-card-actions {
		width: 100%;
	}

	.ella-btn-search-details,
	.ella-search-select-wrapper {
		width: 100%;
	}

	.ella-search-select-wrapper input[type="submit"] {
		width: 100% !important;
		text-align: center !important;
	}
}

/* ------------------------------------------------------------------
   LISTINGS PAGE (ferienwohnungen) — room cards from [mphb_rooms]
   ------------------------------------------------------------------ */
.ella-listings-intro-block {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 32px;
	padding-bottom: 28px;
	border-bottom: 1px solid #e2e8f0;
}

.ella-listings-subhead {
	display: block;
	font-size: 10px;
	font-weight: 700;
	color: #f3615a;
	letter-spacing: 2px;
	text-transform: uppercase;
	margin-bottom: 8px;
}

.ella-listings-main-title {
	font-family: 'Outfit', sans-serif;
	font-size: clamp(24px, 4vw, 36px);
	font-weight: 700;
	color: #1e293b;
	margin: 0 0 10px;
	letter-spacing: -0.5px;
}

.ella-listings-subtext {
	font-size: 14.5px;
	color: #64748b;
	line-height: 1.65;
	margin: 0;
}

/* Room content card (from templates/room-content.php) */
.ella-booking-content .mphb-room-type,
.ella-booking-content .mphb-rooms-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
	gap: 24px;
}

/* Page body generic styles */
.ella-page-body {
	font-size: 15px;
	color: #475569;
	line-height: 1.75;
}

.ella-page-body h1,
.ella-page-body h2,
.ella-page-body h3 {
	font-family: 'Outfit', sans-serif;
	color: #1e293b;
}

.ella-page-body a {
	color: #f3615a;
}

.ella-page-body a:hover {
	text-decoration: underline;
}

/* ------------------------------------------------------------------
   HERO SECTION — Push down content so hero fills viewport behind nav
   ------------------------------------------------------------------ */
body {
	padding-top: 0 !important;
}

.ella-hero-slider-section {
	/* Hero is full viewport height - the header is fixed so content starts at 0 */
	margin-top: 0;
}

/* Non-hero pages: push content below fixed 68px header */
.ella-clean-booking-main,
.ella-search-page-wrap,
.ella-checkout-page,
.ella-status-page,
.ella-page-content-wrap {
	padding-top: 68px;
}

/* ------------------------------------------------------------------
   MOTOPRESS [mphb_availability_search] in hero — override
   The hero form uses native inputs, not the shortcode.
   The shortcode is used inside the booking modal only.
   ------------------------------------------------------------------ */
.ella-modal-form-wrapper .mphb_sc_search_form form,
.ella-modal-form-wrapper form {
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
}

.ella-modal-form-wrapper form p {
	margin: 0 !important;
}

.ella-modal-form-wrapper form label {
	display: block !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	color: #64748b !important;
	text-transform: uppercase !important;
	letter-spacing: 0.8px !important;
	margin-bottom: 6px !important;
}

.ella-modal-form-wrapper form input[type="text"],
.ella-modal-form-wrapper form select {
	width: 100% !important;
	padding: 12px 14px !important;
	border: 1.5px solid #e2e8f0 !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	color: #1e293b !important;
	background: #f8fafc !important;
	font-family: 'Inter', sans-serif !important;
	transition: border-color 0.2s !important;
	box-sizing: border-box !important;
}

.ella-modal-form-wrapper form input[type="submit"],
.ella-modal-form-wrapper form .button {
	width: 100% !important;
	padding: 14px !important;
	background: #f3615a !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	font-family: 'Outfit', sans-serif !important;
	cursor: pointer !important;
	transition: background 0.2s !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
}

.ella-modal-form-wrapper form input[type="submit"]:hover {
	background: #e0524b !important;
}

/* ==========================================================================
   VikBooking Style Customizations (Coral/Red Matching Theme Color #f3615a)
   ========================================================================== */
/* Primary color background overrides */
.vbc-container button,
.vbc-container input[type="submit"],
.vbc-container .btn,
.vbc-container .button,
.vbc-container .vbo-btn,
.vbc-container .vbo-button,
.vbo-horizsearch-standardformat-wrap input[type="submit"],
.vbo-horizsearch-standardformat-wrap button,
.vbo-horizsearch-humanformat-wrap input[type="submit"],
.vbo-horizsearch-humanformat-wrap button,
.vikbooking button,
.vikbooking input[type="submit"],
.vikbooking .vbo-btn,
.vikbooking .vbo-button {
	background-color: #f3615a !important;
	color: #ffffff !important;
	border: 1px solid #f3615a !important;
	border-radius: 100px !important;
	font-family: 'Outfit', sans-serif !important;
	font-weight: 700 !important;
	padding: 12px 28px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
}

.vbc-container button:hover,
.vbc-container input[type="submit"]:hover,
.vbc-container .btn:hover,
.vbc-container .button:hover,
.vbc-container .vbo-btn:hover,
.vbc-container .vbo-button:hover,
.vbo-horizsearch-standardformat-wrap input[type="submit"]:hover,
.vbo-horizsearch-standardformat-wrap button:hover,
.vbo-horizsearch-humanformat-wrap input[type="submit"]:hover,
.vbo-horizsearch-humanformat-wrap button:hover,
.vikbooking button:hover,
.vikbooking input[type="submit"]:hover,
.vikbooking .vbo-btn:hover,
.vikbooking .vbo-button:hover {
	background-color: #d9524c !important;
	border-color: #d9524c !important;
	color: #ffffff !important;
	box-shadow: 0 4px 12px rgba(243, 97, 90, 0.3) !important;
}

/* Primary text/border color matches */
.vbc-container a,
.vikbooking a {
	color: #f3615a;
}

.vbc-container a:hover,
.vikbooking a:hover {
	color: #d9524c;
}

/* Datepicker & active highlight custom coloring */
.ui-datepicker .ui-state-active,
.ui-datepicker .ui-state-hover,
.ui-datepicker .ui-datepicker-current-day,
.ui-datepicker .ui-datepicker-today a {
	background-color: #f3615a !important;
	color: #ffffff !important;
	border-color: #f3615a !important;
}

/* Active booking items and steps */
.vbc-container .active,
.vikbooking .active,
.vbc-container .vbo-active,
.vikbooking .vbo-active {
	border-color: #f3615a !important;
	color: #f3615a !important;
}

/* ==========================================================================
   PREMIUM ROOMS GRID (Ferienwohnungen) — CUSTOM STYLING OVERRIDES
   ========================================================================== */

/* Wrap container */
.ella-roomslist-wrap {
	width: 100%;
	margin-top: 10px;
}

/* Rooms Grid */
.ella-rooms-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 48px !important;
}

@media (max-width: 900px) {
	.ella-rooms-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

/* Room Card */
.ella-room-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.04), 0 20px 40px -15px rgba(15, 23, 42, 0.06);
	display: flex;
	flex-direction: column;
	transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);
	list-style: none !important;
}

.ella-room-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.08), 0 30px 60px -15px rgba(15, 23, 42, 0.1);
}

/* Gallery Slider Wrapper */
.ella-room-card-image-wrapper {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background-color: #f1f5f9;
}

.ella-room-card-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity 0.3s ease;
}

/* Navigation Arrows */
.ella-room-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(4px);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #0f172a;
	cursor: pointer;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
	transition: all 0.2s ease;
	z-index: 10;
	padding: 0;
}

.ella-room-arrow:hover {
	background: #ffffff;
	color: #f25b54;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
	transform: translateY(-50%) scale(1.05);
}

.ella-room-arrow.prev {
	left: 16px;
}

.ella-room-arrow.next {
	right: 16px;
}

/* Favorite Button */
.ella-room-favorite {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #ffffff;
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
	transition: all 0.2s ease;
	z-index: 10;
	padding: 0;
}

.ella-room-favorite:hover {
	transform: scale(1.08);
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.12);
}

.ella-room-favorite svg {
	transition: fill 0.2s ease, transform 0.2s ease;
}

/* Size Badge */
.ella-room-size-badge {
	position: absolute;
	top: 16px;
	left: 16px;
	background: rgba(15, 23, 42, 0.75);
	backdrop-filter: blur(6px);
	color: #ffffff;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 12px;
	padding: 6px 12px;
	border-radius: 8px;
	letter-spacing: 0.5px;
	z-index: 10;
}

/* Bullet Pagination */
.ella-room-gallery-bullets {
	position: absolute;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 6px;
	z-index: 10;
}

.ella-gallery-bullet {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.5);
	cursor: pointer;
	transition: all 0.2s ease;
}

.ella-gallery-bullet.active {
	background: #ffffff;
	transform: scale(1.2);
}

/* Card Content Details */
.ella-room-card-content {
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

/* Title & Capacity Header */
.ella-room-card-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 14px;
	gap: 16px;
}

.ella-room-card-title {
	font-family: 'Outfit', sans-serif;
	font-size: 20px;
	font-weight: 800;
	color: #0f172a;
	margin: 0;
	line-height: 1.35;
	letter-spacing: -0.5px;
}

.ella-room-card-title a {
	color: #0f172a;
	text-decoration: none;
	transition: color 0.2s ease;
}

.ella-room-card-title a:hover {
	color: #f25b54;
}

.ella-room-capacity {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 700;
	color: #64748b;
	font-family: 'Outfit', sans-serif;
	white-space: nowrap;
	margin-top: 3px;
}

.ella-room-capacity svg {
	stroke: #64748b;
}

/* Room Description */
.ella-room-card-desc {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: #475569;
	line-height: 1.6;
	margin: 0 0 20px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	height: 44px;
}

/* Characteristics Grid */
.ella-room-features-box {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	background: #f8fafc;
	border-radius: 16px;
	padding: 16px 20px;
	margin-bottom: 24px;
	border: 1.5px solid #f1f5f9;
}

.ella-feature-item {
	display: flex;
	align-items: center;
	gap: 10px;
	color: #0f172a;
}

.ella-feature-icon {
	color: #f25b54;
	flex-shrink: 0;
}

.ella-feature-text {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.ella-feat-val {
	font-size: 13px;
	font-weight: 700;
	font-family: 'Outfit', sans-serif;
	color: #1e293b;
}

.ella-feat-lbl {
	font-size: 11px;
	font-weight: 600;
	font-family: 'Inter', sans-serif;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Bottom Price / Button Row */
.ella-room-price-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
	padding-top: 20px;
	border-top: 1.5px dashed #e2e8f0;
	gap: 16px;
}

@media (max-width: 480px) {
	.ella-room-price-row {
		flex-direction: column;
		align-items: stretch;
		gap: 14px;
	}
}

.ella-room-price-side {
	display: flex;
	flex-direction: column;
	font-family: 'Inter', sans-serif;
	line-height: 1.3;
}

.ella-price-prefix {
	font-size: 14px;
	color: #64748b;
}

.ella-price-prefix strong {
	font-size: 22px;
	color: #0f172a;
	font-family: 'Outfit', sans-serif;
	font-weight: 800;
}

.ella-price-sub {
	font-size: 11px;
	font-weight: 700;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-top: 2px;
}

.ella-room-btn-side {
	display: flex;
	gap: 10px;
	align-items: center;
}

@media (max-width: 480px) {
	.ella-room-btn-side {
		justify-content: space-between;
	}
}

.ella-btn-card-outline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: 'Outfit', sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: #334155;
	border: 1.5px solid #cbd5e1;
	padding: 10px 18px;
	border-radius: 100px;
	text-decoration: none !important;
	transition: all 0.2s ease;
	white-space: nowrap;
}

.ella-btn-card-outline:hover {
	background: #f1f5f9;
	color: #0f172a;
	border-color: #94a3b8;
}

.ella-btn-card-solid {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-family: 'Outfit', sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: #ffffff !important;
	background: #f25b54;
	padding: 10px 20px;
	border-radius: 100px;
	text-decoration: none !important;
	transition: all 0.2s ease;
	border: none;
	cursor: pointer;
	white-space: nowrap;
}

.ella-btn-card-solid:hover {
	background: #d9524c;
	box-shadow: 0 4px 12px rgba(242, 91, 84, 0.2);
}

/* Highlights Row styling */
.ella-features-highlights-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 20px;
	padding: 24px;
	box-shadow: 0 4px 20px rgba(15, 23, 42, 0.03);
	margin-top: 32px;
}

@media (max-width: 1024px) {
	.ella-features-highlights-row {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}
}

@media (max-width: 600px) {
	.ella-features-highlights-row {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

.ella-highlight-card {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.ella-highlight-icon {
	background: #fff4f4;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.ella-highlight-icon svg {
	color: #f25b54;
}

.ella-highlight-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-family: 'Inter', sans-serif;
}

.ella-hl-title {
	font-family: 'Outfit', sans-serif;
	font-size: 14px;
	font-weight: 700;
	color: #0f172a;
	margin: 0;
}

.ella-hl-desc {
	font-size: 12.5px;
	color: #64748b;
	margin: 0;
}

/* ==========================================================================
   PREMIUM SINGLE APARTMENT VIEW — CUSTOM STYLING OVERRIDES
   ========================================================================== */

.ella-single-apartment-container {
	width: 100%;
	margin-top: 10px;
}

/* Breadcrumb & Title */
.ella-single-header-area {
	margin-bottom: 24px;
}

.ella-single-breadcrumb {
	font-family: 'Outfit', sans-serif;
	font-size: 11px;
	font-weight: 700;
	color: #94a3b8;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin-bottom: 6px;
	display: block;
}

.ella-single-title {
	font-family: 'Outfit', sans-serif;
	font-size: clamp(24px, 4vw, 32px);
	font-weight: 800;
	color: #0f172a;
	margin: 0;
	letter-spacing: -0.5px;
	line-height: 1.25;
}

/* Gallery Slider Grid */
.ella-single-gallery-container {
	margin-bottom: 36px;
}

.ella-single-main-image-wrapper {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
	background-color: #f1f5f9;
}

@media (max-width: 768px) {
	.ella-single-main-image-wrapper {
		aspect-ratio: 16 / 10;
	}
}

.ella-single-main-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ella-single-image-counter {
	position: absolute;
	top: 16px;
	left: 16px;
	background: rgba(15, 23, 42, 0.75);
	backdrop-filter: blur(6px);
	color: #ffffff;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 12px;
	padding: 6px 12px;
	border-radius: 8px;
	letter-spacing: 0.5px;
}

/* Thumbnails row */
.ella-single-thumbnails-row {
	display: flex;
	gap: 14px;
	margin-top: 14px;
	overflow-x: auto;
	padding-bottom: 4px;
}

.ella-single-thumbnail {
	width: 100px;
	height: 68px;
	border-radius: 10px;
	overflow: hidden;
	cursor: pointer;
	border: 2.5px solid transparent;
	transition: all 0.2s ease;
	flex-shrink: 0;
}

.ella-single-thumbnail:hover {
	transform: scale(1.02);
}

.ella-single-thumbnail.active {
	border-color: #f25b54;
	transform: scale(1.02);
	box-shadow: 0 4px 10px rgba(242, 91, 84, 0.25);
}

.ella-single-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Content columns layout */
.ella-single-content-grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 48px;
	margin-bottom: 48px;
	margin-top: 36px;
	align-items: start;
}

@media (max-width: 900px) {
	.ella-single-content-grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

.ella-single-desc-column {
	font-size: 15px;
	color: #475569;
	line-height: 1.8;
	font-family: 'Inter', sans-serif;
}

.ella-single-desc-column p {
	margin-bottom: 20px;
}

.ella-single-price-column {
	display: flex;
	justify-content: flex-end;
}

.ella-single-price-card {
	background: #fffdfd;
	border: 1.5px solid #ffe4e3;
	border-radius: 20px;
	padding: 36px 28px;
	width: 100%;
	max-width: 360px;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 4px;
	box-shadow: 0 10px 25px rgba(242, 91, 84, 0.03);
	margin-left: auto;
}

@media (max-width: 900px) {
	.ella-single-price-card {
		max-width: 100%;
		margin-left: 0;
	}
}

.ella-price-card-label {
	font-family: 'Outfit', sans-serif;
	font-size: 11px;
	font-weight: 800;
	color: #94a3b8;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.ella-price-card-amount {
	font-size: 38px;
	color: #f25b54;
	font-family: 'Outfit', sans-serif;
	font-weight: 800;
	line-height: 1.1;
	margin: 8px 0;
}

.ella-price-card-unit {
	font-size: 14.5px;
	font-weight: 700;
	color: #334155;
	font-family: 'Inter', sans-serif;
}

.ella-price-card-sub {
	font-size: 11.5px;
	font-weight: 700;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-top: 4px;
}

/* Sections block styling */
.ella-single-section-block {
	margin-bottom: 48px;
	border-top: 1.5px solid #f1f5f9;
	padding-top: 40px;
}

.ella-single-section-title-wrap {
	margin-bottom: 28px;
}

.ella-single-section-title {
	font-family: 'Outfit', sans-serif;
	font-size: 24px;
	font-weight: 800;
	color: #0f172a;
	margin: 0;
	letter-spacing: -0.5px;
}

/* Custom Calendar Layout Styling */
.ella-single-calendar-container {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 20px;
	padding: 28px;
	box-shadow: 0 4px 20px rgba(15, 23, 42, 0.02);
}

.ella-single-calendar-container .vbo-roomdet-calscontainer-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	justify-content: space-between;
}

/* Make booking form fields premium and styled inline */
.ella-single-booking-form-container {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 20px;
	padding: 36px;
	box-shadow: 0 4px 20px rgba(15, 23, 42, 0.02);
}

/* Layout inline alignment for booking form */
.ella-single-booking-form-container .vbdivsearch {
	width: 100% !important;
}

.ella-single-booking-form-container .vb-search-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 20px !important;
	align-items: flex-end !important;
	width: 100% !important;
}

@media (max-width: 768px) {
	.ella-single-booking-form-container .vb-search-inner {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 16px !important;
	}
}

/* Input blocks check-in / check-out */
.ella-single-booking-form-container .vbo-search-inpblock {
	flex: 2 1 200px !important;
	min-width: 180px !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
}

.ella-single-booking-form-container .vbo-search-inpblock .input-group {
	display: flex !important;
	align-items: center !important;
	border: 1.5px solid #cbd5e1 !important;
	border-radius: 12px !important;
	background-color: #ffffff !important;
	box-shadow: inset 0 2px 4px rgba(15, 23, 42, 0.02) !important;
	padding-right: 12px !important;
	overflow: hidden !important;
	box-sizing: border-box !important;
	transition: all 0.2s ease !important;
	height: 48px !important;
}

.ella-single-booking-form-container .vbo-search-inpblock .input-group:focus-within {
	border-color: #f25b54 !important;
	box-shadow: 0 0 0 3px rgba(242, 91, 84, 0.15), inset 0 2px 4px rgba(15, 23, 42, 0.02) !important;
}

.ella-single-booking-form-container .vbo-search-inpblock .input-group input[type="text"] {
	flex: 1 !important;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	height: 100% !important;
	padding: 10px 16px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	color: #334155 !important;
	outline: none !important;
	cursor: pointer !important;
}

.ella-single-booking-form-container .vbo-search-inpblock .input-group i.vbo-caltrigger {
	position: static !important;
	transform: none !important;
	border: none !important;
	background: none !important;
	padding: 0 !important;
	margin: 0 0 0 8px !important;
	width: auto !important;
	height: auto !important;
	line-height: 1 !important;
	display: inline-block !important;
	color: #64748b !important;
	font-size: 18px !important;
	cursor: pointer !important;
	z-index: auto !important;
}

/* Number of guests block */
.ella-single-booking-form-container .vbo-search-num-racblock {
	flex: 2 1 200px !important;
	min-width: 180px !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	gap: 4px !important;
}

.ella-single-booking-form-container .vbo-search-num-aduchild-block {
	width: 100% !important;
}

.ella-single-booking-form-container .vbo-search-num-aduchild-entry {
	display: flex !important;
	gap: 16px !important;
	width: 100% !important;
}

.ella-single-booking-form-container .vbo-search-num-adults-entry,
.ella-single-booking-form-container .vbo-search-num-children-entry {
	flex: 1 !important;
	width: auto !important;
	max-width: 100% !important;
	min-width: 80px !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
}

.ella-single-booking-form-container .vbo-search-num-adults-entry-label,
.ella-single-booking-form-container .vbo-search-num-children-entry-label {
	font-family: 'Outfit', sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	color: #475569 !important;
	margin: 0 !important;
	display: block !important;
}

.ella-single-booking-form-container .vbo-search-num-adults-entry-inp,
.ella-single-booking-form-container .vbo-search-num-children-entry-inp {
	width: 100% !important;
	display: block !important;
}

.ella-single-booking-form-container select {
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;
	height: 48px !important;
	padding: 10px 16px !important;
	border: 1.5px solid #cbd5e1 !important;
	border-radius: 12px !important;
	background-color: #ffffff !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	color: #334155 !important;
	box-shadow: inset 0 2px 4px rgba(15, 23, 42, 0.02) !important;
	transition: all 0.2s ease !important;
	box-sizing: border-box !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	background-size: 16px !important;
	padding-right: 40px !important;
}

.ella-single-booking-form-container select:focus {
	border-color: #f25b54 !important;
	box-shadow: 0 0 0 3px rgba(242, 91, 84, 0.15), inset 0 2px 4px rgba(15, 23, 42, 0.02) !important;
	outline: none !important;
}

.ella-single-booking-form-container #vbjstotnights {
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	color: #f25b54 !important;
	margin-top: 4px !important;
}

/* Submit Button */
.ella-single-booking-form-container .vbo-search-submit {
	flex: 1 1 180px !important;
	margin: 0 !important;
}

@media (max-width: 768px) {
	.ella-single-booking-form-container .vbo-search-submit {
		margin-top: 10px !important;
	}
}

.ella-single-booking-form-container input[type="submit"] {
	width: 100% !important;
	height: 48px !important;
	padding: 12px 32px !important;
	font-family: 'Outfit', sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #ffffff !important;
	background: #f25b54 !important;
	border: none !important;
	border-radius: 12px !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	box-shadow: 0 4px 12px rgba(242, 91, 84, 0.2) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	margin: 0 !important;
}

.ella-single-booking-form-container input[type="submit"]:hover {
	background: #d9524c !important;
	box-shadow: 0 4px 16px rgba(242, 91, 84, 0.3) !important;
}

/* Hide default subtitle/titles of form if redundant */
.ella-single-booking-form-container .vbo-seldates-cont h4 {
	display: none !important;
}

.ella-single-booking-form-container .vbo-intro-main,
.ella-single-booking-form-container .vbo-closing-main {
	display: none !important;
}

/* Mobile availability calendar and Jetzt buchen form layout improvements */
@media (max-width: 768px) {
	/* Calendar container full-width and layout tweaks */
	.ella-single-calendar-container {
		padding: 16px 8px !important;
		margin-left: -16px !important;
		margin-right: -16px !important;
		border-radius: 0 !important;
		border-left: none !important;
		border-right: none !important;
		width: calc(100% + 32px) !important;
		box-sizing: border-box !important;
	}

	.ella-single-calendar-container .vbo-roomdet-calscontainer-inner {
		justify-content: center !important;
		gap: 12px !important;
	}

	/* Table sizing to fit screen width */
	.vbo-availcalendars-cont table {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
		margin: 0 auto 12px auto !important;
	}

	.vbo-availcalendars-cont table td, 
	.vbo-availcalendars-cont table th {
		padding: 8px 2px !important;
		font-size: 13px !important;
		text-align: center !important;
	}

	/* Calendar legends flex flow */
	.vbo-availcalendars-cont .vblegendediv {
		display: flex !important;
		flex-wrap: wrap !important;
		gap: 8px 12px !important;
		justify-content: flex-start !important;
		margin-bottom: 16px !important;
		padding: 0 4px !important;
	}

	.vbo-availcalendars-cont .vblegenda {
		font-size: 11px !important;
		margin: 0 !important;
		display: inline-flex !important;
		align-items: center !important;
		gap: 4px !important;
	}

	/* Jetzt buchen booking form container full-width and reduced padding */
	.ella-single-booking-form-container {
		background: #f8fafc !important;
		border: none !important;
		box-shadow: none !important;
		padding: 24px 16px !important;
		margin-left: -16px !important;
		margin-right: -16px !important;
		border-radius: 0 !important;
		width: calc(100% + 32px) !important;
		box-sizing: border-box !important;
	}

	/* Reduce flex attributes to stack cleanly on mobile */
	.ella-single-booking-form-container .vbo-search-inpblock {
		flex: 1 1 100% !important;
		min-width: 100% !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}

	.ella-single-booking-form-container .vbo-search-num-racblock {
		flex: 1 1 100% !important;
		min-width: 100% !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}

	/* Floating booking button on mobile */
	.ella-mobile-floating-booking {
		display: block !important;
		position: fixed !important;
		bottom: 20px !important;
		right: 20px !important;
		z-index: 99999 !important;
		transition: opacity 0.3s ease, visibility 0.3s ease !important;
		opacity: 1;
		visibility: visible;
	}
	
	.ella-btn-floating-booking {
		display: inline-flex !important;
		align-items: center !important;
		gap: 8px !important;
		background: #f25b54 !important;
		color: #ffffff !important;
		padding: 14px 24px !important;
		border-radius: 50px !important;
		font-family: 'Outfit', sans-serif !important;
		font-size: 14px !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;
		letter-spacing: 0.5px !important;
		text-decoration: none !important;
		box-shadow: 0 8px 24px rgba(242, 91, 84, 0.4) !important;
		transition: all 0.2s ease !important;
	}
	
	.ella-btn-floating-booking:active {
		transform: scale(0.95) !important;
		background: #d9524c !important;
	}
}

/* Floating booking button hidden by default on desktop */
.ella-mobile-floating-booking {
	display: none;
	transition: opacity 0.3s ease, visibility 0.3s ease !important;
}

.ella-mobile-floating-booking.ella-fade-out {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* ==========================================================================
   7. Premium Search Results Page Styling
   ========================================================================== */

/* Progress Steps Stepper */
.vbstepsbarcont {
	margin: 36px auto 48px auto !important;
	max-width: 1000px !important;
	padding: 0 16px !important;
}

ol.vbo-stepbar {
	display: flex !important;
	justify-content: space-between !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	position: relative !important;
}

ol.vbo-stepbar::before {
	content: '' !important;
	position: absolute !important;
	top: 15px !important;
	left: 8% !important;
	right: 8% !important;
	height: 2px !important;
	background: #e2e8f0 !important;
	z-index: 1 !important;
}

li.vbo-step {
	flex: 1 !important;
	text-align: center !important;
	position: relative !important;
	z-index: 2 !important;
	font-family: 'Outfit', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #94a3b8 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
}

li.vbo-step::before {
	content: '' !important;
	display: block !important;
	width: 32px !important;
	height: 32px !important;
	border-radius: 50% !important;
	background: #ffffff !important;
	border: 2px solid #e2e8f0 !important;
	margin: 0 auto 10px auto !important;
	box-shadow: 0 2px 4px rgba(15, 23, 42, 0.02) !important;
	transition: all 0.2s ease !important;
	box-sizing: border-box !important;
}

/* Completed step styling */
li.vbo-step-complete::before {
	background: #f25b54 !important;
	border-color: #f25b54 !important;
}
li.vbo-step-complete a {
	color: #f25b54 !important;
	text-decoration: none !important;
}

/* Current step styling */
li.vbo-step-current::before {
	background: #ffffff !important;
	border-color: #f25b54 !important;
	border-width: 3px !important;
}
li.vbo-step-current span {
	color: #1e293b !important;
	font-weight: 700 !important;
}

/* Step links hover */
li.vbo-step a:hover {
	color: #f25b54 !important;
}

/* Search Summary Header */
.vbo-results-head {
	background: #f8fafc !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 20px !important;
	padding: 20px 24px !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 24px !important;
	align-items: center !important;
	justify-content: space-between !important;
	margin-bottom: 36px !important;
	box-shadow: 0 4px 20px rgba(15, 23, 42, 0.01) !important;
}

.vbo-results-checkin,
.vbo-results-nights,
.vbo-results-numrooms,
.vbo-results-numadults,
.vbo-results-numchildren {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
}

.vbo-results-checkin i,
.vbo-results-nights i,
.vbo-results-numrooms i,
.vbo-results-numadults i,
.vbo-results-numchildren i,
.vbo-results-checkin svg,
.vbo-results-nights svg,
.vbo-results-numrooms svg,
.vbo-results-numadults svg,
.vbo-results-numchildren svg {
	color: #f25b54 !important;
	font-size: 20px !important;
	width: 20px !important;
	height: 20px !important;
}

.vbo-results-head-det {
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
}

.vbo-results-head-det-lbl {
	font-family: 'Inter', sans-serif !important;
	font-size: 11px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	color: #64748b !important;
	font-weight: 500 !important;
}

.vbo-results-head-det-val {
	font-family: 'Outfit', sans-serif !important;
	font-size: 15px !important;
	color: #1e293b !important;
	font-weight: 700 !important;
}

/* "Daten Ändern" Button styling */
.vbo-results-chdates a.vbo-pref-color-btn-secondary {
	display: inline-flex !important;
	align-items: center !important;
	background: #ffffff !important;
	border: 1px solid #cbd5e1 !important;
	color: #1e293b !important;
	padding: 10px 20px !important;
	border-radius: 50px !important;
	font-family: 'Outfit', sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	text-decoration: none !important;
	transition: all 0.2s ease !important;
}

.vbo-results-chdates a.vbo-pref-color-btn-secondary:hover {
	background: #f1f5f9 !important;
	border-color: #94a3b8 !important;
	color: #f25b54 !important;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03) !important;
}

/* Layout style selector options */
.vbo-results-filtering {
	display: flex !important;
	justify-content: flex-end !important;
	margin-bottom: 24px !important;
	padding: 0 4px !important;
}

.vbo-results-style {
	display: inline-flex !important;
	background: #f1f5f9 !important;
	padding: 4px !important;
	border-radius: 10px !important;
	gap: 4px !important;
}

.vbo-results-style-option {
	padding: 8px 16px !important;
	border-radius: 8px !important;
	font-family: 'Outfit', sans-serif !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	color: #64748b !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
}

.vbo-results-style-option:hover {
	color: #1e293b !important;
}

.vbo-results-style-option-active {
	background: #ffffff !important;
	color: #f25b54 !important;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08) !important;
}

/* Search results listing layout cards */
.vbo-searchresults-classic-wrap {
	display: flex !important;
	flex-direction: column !important;
	gap: 28px !important;
	margin-bottom: 48px !important;
}

.room_item {
	display: flex !important;
	background: #ffffff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 20px !important;
	overflow: hidden !important;
	box-shadow: 0 4px 20px rgba(15, 23, 42, 0.02) !important;
	transition: transform 0.2s ease, box-shadow 0.2s ease !important;
	position: relative !important;
}

.room_item:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05) !important;
}

/* Card images column */
.vblistroomblock {
	display: flex !important;
	flex: 1 !important;
	min-width: 0 !important;
}

.vbimglistdiv {
	width: 320px !important;
	min-width: 320px !important;
	height: 240px !important;
	position: relative !important;
	background: #f1f5f9 !important;
	overflow: hidden !important;
}

.vbimglistdiv a {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
}

.vbo-dots-slider-selector {
	width: 100% !important;
	height: 100% !important;
}

/* Dots slider container settings */
.vik-dots-slider-container {
	height: 100% !important;
	border-radius: 0 !important;
	overflow: hidden !important;
}

.vik-dots-slider-inner {
	height: 100% !important;
}

.vik-dots-slider-slides {
	height: 100% !important;
}

.vik-dots-slider-slide {
	height: 100% !important;
}

.vik-dots-slider-slide img,
img.vblistimg {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform 0.3s ease !important;
}

.room_item:hover img.vblistimg,
.room_item:hover .vik-dots-slider-slide img {
	transform: scale(1.02) !important;
}

/* Dots slider pagination styling */
.vik-dots-slider-dots {
	position: absolute !important;
	bottom: 12px !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	background: rgba(15, 23, 42, 0.3) !important;
	padding: 5px 10px !important;
	border-radius: 20px !important;
	backdrop-filter: blur(4px) !important;
	gap: 6px !important;
	z-index: 10 !important;
}

.vik-dots-slider-dot {
	width: 6px !important;
	height: 6px !important;
	background: rgba(255, 255, 255, 0.6) !important;
	border-radius: 50% !important;
	transition: all 0.2s ease !important;
}

.vik-dots-slider-dot-active {
	background: #ffffff !important;
	width: 12px !important;
	border-radius: 10px !important;
}

/* Details Overlay trigger button */
.vbmodalrdetails {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	background: rgba(255, 255, 255, 0.9) !important;
	border-radius: 50% !important;
	width: 32px !important;
	height: 32px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: #1e293b !important;
	box-shadow: 0 4px 10px rgba(0,0,0,0.05) !important;
	transition: all 0.2s ease !important;
	z-index: 15 !important;
}

.vbmodalrdetails:hover {
	background: #f25b54 !important;
	color: #ffffff !important;
}

/* Content block styling (middle) */
.vbo-info-room {
	flex: 1 !important;
	padding: 20px 24px !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	min-width: 0 !important;
}

.vbdescrlistdiv {
	margin: 0 !important;
}

h4.vbrowcname {
	margin: 0 0 8px 0 !important;
	font-family: 'Outfit', sans-serif !important;
	font-size: 19px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
}

h4.vbrowcname a {
	color: #1e293b !important;
	text-decoration: none !important;
	transition: color 0.15s ease !important;
}

h4.vbrowcname a:hover {
	color: #f25b54 !important;
}

.vbrowcdescr {
	font-family: 'Inter', sans-serif !important;
	font-size: 13.5px !important;
	color: #64748b !important;
	line-height: 1.5 !important;
	margin-bottom: 12px !important;
}

/* Specifications / Characteristics */
.roomlist_carats {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 11px !important;
	color: #64748b !important;
}

.roomlist_carats span {
	background: #f8fafc !important;
	border: 1px solid #e2e8f0 !important;
	padding: 3px 8px !important;
	border-radius: 6px !important;
	font-weight: 500 !important;
}

/* Price / Action Side Panel (right column) */
.vbcontdivtot {
	width: 190px !important;
	min-width: 190px !important;
	border-left: 1px solid #e2e8f0 !important;
	background: transparent !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 20px 16px !important;
	box-sizing: border-box !important;
}

.vbdivtot, .vbdivtotinline {
	width: 100% !important;
	text-align: center !important;
}

.vbsrowprice {
	margin-bottom: 12px !important;
}

.vbrowroomcapacity {
	display: flex !important;
	justify-content: center !important;
	gap: 2px !important;
	margin-bottom: 6px !important;
}

.vbrowroomcapacity i,
.vbrowroomcapacity svg {
	font-size: 14px !important;
	width: 14px !important;
	height: 14px !important;
}

.vbrowroomcapacity i.vbo-pref-color-text,
.vbrowroomcapacity svg.vbo-pref-color-text {
	color: #f25b54 !important;
}

.vbrowroomcapacity i.vbo-empty-personicn,
.vbrowroomcapacity svg.vbo-empty-personicn {
	color: #cbd5e1 !important;
}

.vbsrowpricediv {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 2px !important;
}

.room_cost {
	font-family: 'Outfit', sans-serif !important;
	font-size: 20px !important;
	font-weight: 800 !important;
	color: #1e293b !important;
}

.room_cost .vbo_currency {
	font-size: 15px !important;
	font-weight: 700 !important;
	color: #1e293b !important;
	margin-right: 2px !important;
}

.vbo-room-result-price-before-discount .room_cost {
	font-size: 14px !important;
	color: #94a3b8 !important;
	text-decoration: line-through !important;
	font-weight: 500 !important;
}

/* "Auswählen" Selector Button */
.vbselectordiv button.vbselectr-result {
	width: 100% !important;
	background: #f25b54 !important;
	border: none !important;
	color: #ffffff !important;
	padding: 10px 18px !important;
	border-radius: 30px !important;
	font-family: 'Outfit', sans-serif !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	cursor: pointer !important;
	box-shadow: 0 4px 12px rgba(242, 91, 84, 0.2) !important;
	transition: all 0.2s ease !important;
}

.vbselectordiv button.vbselectr-result:hover {
	background: #d9524c !important;
	box-shadow: 0 4px 16px rgba(242, 91, 84, 0.3) !important;
}

/* Search Results Mobile Responsiveness Overlay */
@media (max-width: 768px) {
	.room_item {
		flex-direction: column !important;
	}
	
	.vbimglistdiv {
		width: 100% !important;
		min-width: 100% !important;
		height: 200px !important;
	}
	
	.vbo-info-room {
		padding: 20px !important;
	}
	
	.vbcontdivtot {
		width: 100% !important;
		min-width: 100% !important;
		border-left: none !important;
		border-top: 1px solid #e2e8f0 !important;
		padding: 20px !important;
	}
	
	ol.vbo-stepbar::before {
		top: 11px !important;
	}
	li.vbo-step {
		font-size: 11px !important;
	}
	li.vbo-step::before {
		width: 24px !important;
		height: 24px !important;
		border-width: 2px !important;
	}
	
	.vbo-results-head {
		padding: 16px !important;
		gap: 16px !important;
		justify-content: flex-start !important;
	}
	.vbo-results-chdates {
		width: 100% !important;
		margin-top: 4px !important;
	}
	.vbo-results-chdates a.vbo-pref-color-btn-secondary {
		width: 100% !important;
		width: 100% !important;
		justify-content: center !important;
	}
}

/* Premium styling for standalone search form (Daten ändern) */
.vbo-search-mainview {
	background: #f8fafc !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 20px !important;
	padding: 24px 30px !important;
	box-shadow: 0 4px 20px rgba(15, 23, 42, 0.02) !important;
	margin: 0 auto 36px auto !important;
	max-width: 1000px !important;
	box-sizing: border-box !important;
}

.vbo-search-mainview .vb-search-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 24px !important;
	align-items: flex-start !important;
	width: 100% !important;
}

.vbo-search-mainview .vbo-search-inpblock {
	flex: 1 1 200px !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	box-sizing: border-box !important;
}

.vbo-search-mainview .vbo-search-inpblock .input-group {
	display: flex !important;
	align-items: center !important;
	border: 1.5px solid #cbd5e1 !important;
	border-radius: 12px !important;
	background-color: #ffffff !important;
	box-shadow: inset 0 2px 4px rgba(15, 23, 42, 0.02) !important;
	padding-right: 12px !important;
	overflow: hidden !important;
	box-sizing: border-box !important;
	transition: all 0.2s ease !important;
	height: 48px !important;
	width: 100% !important;
}

.vbo-search-mainview .vbo-search-inpblock .input-group:focus-within {
	border-color: #f25b54 !important;
	box-shadow: 0 0 0 3px rgba(242, 91, 84, 0.15), inset 0 2px 4px rgba(15, 23, 42, 0.02) !important;
}

.vbo-search-mainview .vbo-search-inpblock .input-group input[type="text"] {
	flex: 1 !important;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	height: 100% !important;
	padding: 10px 16px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	color: #334155 !important;
	outline: none !important;
	cursor: pointer !important;
}

.vbo-search-mainview .vbo-search-inpblock .input-group i.vbo-caltrigger {
	position: static !important;
	transform: none !important;
	border: none !important;
	background: none !important;
	padding: 0 !important;
	margin: 0 0 0 8px !important;
	width: auto !important;
	height: auto !important;
	line-height: 1 !important;
	display: inline-block !important;
	color: #64748b !important;
	font-size: 18px !important;
	cursor: pointer !important;
	z-index: auto !important;
}

/* Guest details & Room count blocks */
.vbo-search-mainview .vbo-search-num-racblock {
	flex: 2 1 350px !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 16px !important;
	box-sizing: border-box !important;
}

.vbo-search-mainview .vbo-search-num-rooms {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	width: 100% !important;
}

.vbo-search-mainview .vbo-search-num-aduchild-block {
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
	width: 100% !important;
}

.vbo-search-mainview .vbo-search-num-aduchild-entry {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 16px !important;
	width: 100% !important;
}

.vbo-search-mainview .vbo-search-roomnum {
	min-width: 80px !important;
	font-family: 'Outfit', sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	color: #475569 !important;
}

.vbo-search-mainview .vbo-search-num-adults-entry,
.vbo-search-mainview .vbo-search-num-children-entry {
	flex: 1 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 6px !important;
}

.vbo-search-mainview .vbo-search-num-adults-entry-label,
.vbo-search-mainview .vbo-search-num-children-entry-label,
.vbo-search-mainview label {
	font-family: 'Outfit', sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	color: #475569 !important;
	margin: 0 !important;
}

.vbo-search-mainview select {
	width: 100% !important;
	height: 48px !important;
	padding: 10px 16px !important;
	border: 1.5px solid #cbd5e1 !important;
	border-radius: 12px !important;
	background-color: #ffffff !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	color: #334155 !important;
	box-shadow: inset 0 2px 4px rgba(15, 23, 42, 0.02) !important;
	transition: all 0.2s ease !important;
	box-sizing: border-box !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	background-size: 16px !important;
	padding-right: 40px !important;
}

.vbo-search-mainview select:focus {
	border-color: #f25b54 !important;
	box-shadow: 0 0 0 3px rgba(242, 91, 84, 0.15), inset 0 2px 4px rgba(15, 23, 42, 0.02) !important;
	outline: none !important;
}

/* Submit Button Placement (At the bottom of the flex row) */
.vbo-search-mainview .vbo-search-submit {
	flex: 1 1 100% !important;
	width: 100% !important;
	margin: 20px 0 0 0 !important;
	display: flex !important;
	justify-content: flex-end !important;
}

.vbo-search-mainview button[type="submit"],
.vbo-search-mainview input[type="submit"] {
	width: auto !important;
	min-width: 220px !important;
	height: 48px !important;
	padding: 12px 36px !important;
	font-family: 'Outfit', sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #ffffff !important;
	background: #f25b54 !important;
	border: none !important;
	border-radius: 12px !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	box-shadow: 0 4px 12px rgba(242, 91, 84, 0.2) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
}

.vbo-search-mainview button[type="submit"]:hover,
.vbo-search-mainview input[type="submit"]:hover {
	background: #d9524c !important;
	box-shadow: 0 4px 16px rgba(242, 91, 84, 0.3) !important;
}

/* Hide redundant element tags */
.vbo-search-mainview .vbo-seldates-cont h4,
.vbo-search-mainview .vbo-intro-main,
.vbo-search-mainview .vbo-closing-main {
	display: none !important;
}

/* Mobile search overrides styling */
@media (max-width: 768px) {
	.vbo-search-mainview {
		padding: 20px 16px !important;
	}
	.vbo-search-mainview .vb-search-inner {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 16px !important;
	}
	.vbo-search-mainview .vbo-search-inpblock {
		flex: 1 1 100% !important;
		width: 100% !important;
	}
	.vbo-search-mainview .vbo-search-num-racblock {
		flex: 1 1 100% !important;
		width: 100% !important;
	}
	.vbo-search-mainview .vbo-search-num-aduchild-entry {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 10px !important;
		background: #ffffff !important;
		border: 1px solid #e2e8f0 !important;
		padding: 16px !important;
		border-radius: 12px !important;
	}
	.vbo-search-mainview .vbo-search-submit {
		width: 100% !important;
		margin-top: 10px !important;
	}
	.vbo-search-mainview button[type="submit"],
	.vbo-search-mainview input[type="submit"] {
		width: 100% !important;
	}
}

/* ==========================================================================
   VIKBOOKING BOOKING DETAILS OVERRIDES
   ========================================================================== */

/* Main Booking Details Container Overrides */
.vbc-container,
.vikbooking {
	font-family: 'Inter', sans-serif !important;
}

/* Print Icon Button */
.vbo-booking-print {
	float: right !important;
	margin: 0 0 20px 20px !important;
	position: relative !important;
	z-index: 10 !important;
}

.vbo-booking-print-link {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 42px !important;
	height: 42px !important;
	background: #ffffff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 50% !important;
	color: #64748b !important;
	font-size: 1.15rem !important;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03) !important;
	transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
	text-decoration: none !important;
}

.vbo-booking-print-link:hover {
	background: #f8fafc !important;
	color: #f3615a !important;
	border-color: #cbd5e1 !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.04) !important;
}

/* Intro Title Subheading */
.vbo-booking-details-intro {
	font-family: 'Outfit', sans-serif !important;
	font-size: 1.25rem !important;
	font-weight: 500 !important;
	color: #475569 !important;
	margin-bottom: 24px !important;
	line-height: 1.5 !important;
	clear: both !important;
}

/* Status Badge */
.vbo-booking-details-head {
	font-family: 'Outfit', sans-serif !important;
	font-weight: 700 !important;
	font-size: 0.8rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.8px !important;
	padding: 8px 16px !important;
	border-radius: 100px !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	margin: 0 0 24px 0 !important;
	border: 1px solid transparent !important;
	box-shadow: 0 2px 4px rgba(0,0,0,0.02) !important;
}

.vbo-booking-details-head > h4 {
	font-size: 0.8rem !important;
	font-weight: 700 !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1 !important;
}

.vbo-booking-details-head-confirmed {
	background-color: #ecfdf5 !important;
	color: #065f46 !important;
	border-color: #a7f3d0 !important;
}

.vbo-booking-details-head-pending {
	background-color: #fffbeb !important;
	color: #92400e !important;
	border-color: #fde68a !important;
}

.vbo-booking-details-head-cancelled {
	background-color: #fef2f2 !important;
	color: #991b1b !important;
	border-color: #fca5a5 !important;
}

/* Mid Container Column Layout */
.vbo-booking-details-midcontainer {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	margin-bottom: 32px !important;
}

@media (max-width: 991px) {
	.vbo-booking-details-midcontainer {
		grid-template-columns: repeat(2, 1fr) !important;
	}
	.vbo-booking-details-actions {
		grid-column: span 2 !important;
	}
}

@media (max-width: 640px) {
	.vbo-booking-details-midcontainer {
		grid-template-columns: 1fr !important;
	}
	.vbo-booking-details-actions {
		grid-column: span 1 !important;
	}
}

/* Column Cards Styling */
.vbo-booking-details-midcontainer > div {
	background: #ffffff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 20px !important;
	padding: 28px !important;
	box-shadow: 0 10px 15px -3px rgba(15, 23, 42, 0.02), 0 4px 6px -2px rgba(15, 23, 42, 0.02) !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	transition: box-shadow 0.2s ease !important;
}

.vbo-booking-details-midcontainer > div:hover {
	box-shadow: 0 20px 25px -5px rgba(15, 23, 42, 0.04), 0 10px 10px -5px rgba(15, 23, 42, 0.04) !important;
}

.vbo-booking-details-midcontainer > .vbo-booking-details-actions {
	/* Override the default flex override */
	flex: unset !important;
}

/* Card Column Header Title */
.vbvordudatatitle {
	font-family: 'Outfit', sans-serif !important;
	font-size: 0.9rem !important;
	font-weight: 700 !important;
	letter-spacing: 1px !important;
	text-transform: uppercase !important;
	color: #0f172a !important;
	border-bottom: 1px solid #f1f5f9 !important;
	padding-bottom: 14px !important;
	margin-bottom: 20px !important;
	display: block !important;
}

/* Card Detail Items */
.vbo-booking-details-bookinfo,
.vbo-bookingdet-userdetail {
	margin: 0 0 18px 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 4px !important;
}

.vbo-booking-details-bookinfo:last-child,
.vbo-bookingdet-userdetail:last-child {
	margin-bottom: 0 !important;
}

.vbo-booking-details-bookinfo-lbl,
.vbo-bookingdet-userdetail-lbl {
	font-family: 'Outfit', sans-serif !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	color: #64748b !important;
	display: block !important;
}

.vbo-booking-details-bookinfo-val,
.vbo-bookingdet-userdetail-val {
	font-family: 'Inter', sans-serif !important;
	font-size: 0.95rem !important;
	font-weight: 500 !important;
	color: #1e293b !important;
	display: block !important;
}

/* Actions Column & Buttons */
.vbo-booking-details-actions-inner {
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
}

.vbo-booking-mod-container,
.vbo-booking-canc-container,
.vbo-booking-canc-inner,
.vbo-booking-mod-inner {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
	background: transparent !important;
	display: block !important;
	width: 100% !important;
}

.vbo-booking-mod-cmd,
.vbo-booking-canc-cmd {
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
	width: 100% !important;
}

/* Premium Buttons Overrides */
.vbo-booking-details-actions-inner a,
.vbo-booking-details-actions-inner span {
	font-family: 'Outfit', sans-serif !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0.5px !important;
	padding: 14px 20px !important;
	border-radius: 12px !important;
	text-align: center !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: 100% !important;
	box-sizing: border-box !important;
	cursor: pointer !important;
	transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
	border: 1px solid transparent !important;
	text-decoration: none !important;
	margin: 0 !important;
}

.vbo-booking-details-actions-inner a i,
.vbo-booking-details-actions-inner span i {
	font-size: 1rem !important;
	margin-right: 0 !important;
}

/* Button variants styling */

/* 1. Pre-Check-In (Solid Emerald Green) */
.vbo-booking-precheckin-cmd a {
	background-color: #10b981 !important;
	color: #ffffff !important;
	border-color: #10b981 !important;
	box-shadow: 0 4px 6px -1px rgba(16, 185, 129, 0.15) !important;
}

.vbo-booking-precheckin-cmd a:hover,
.vbo-booking-precheckin-cmd a:focus {
	background-color: #059669 !important;
	border-color: #059669 !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 10px 15px -3px rgba(16, 185, 129, 0.25) !important;
}

/* 2. Cancellation Request (Soft Red / Coral Alert) */
.vbo-booking-canc-cmd span {
	background-color: #fef2f2 !important;
	color: #dc2626 !important;
	border-color: #fee2e2 !important;
}

.vbo-booking-canc-cmd span:hover {
	background-color: #fee2e2 !important;
	color: #b91c1c !important;
	border-color: #fca5a5 !important;
	transform: translateY(-2px) !important;
}

/* 3. Modify Booking / Request Change (Soft slate gray outline) */
.vbo-booking-mod-cmd:not(.vbo-booking-precheckin-cmd):not(.vbo-booking-review-cmd) a {
	background-color: #f8fafc !important;
	color: #475569 !important;
	border-color: #e2e8f0 !important;
}

.vbo-booking-mod-cmd:not(.vbo-booking-precheckin-cmd):not(.vbo-booking-review-cmd) a:hover {
	background-color: #f1f5f9 !important;
	color: #0f172a !important;
	border-color: #cbd5e1 !important;
	transform: translateY(-2px) !important;
}

/* 4. Leave Review (Gold Outline) */
.vbo-booking-review-cmd a {
	background-color: #fffbeb !important;
	color: #d97706 !important;
	border-color: #fde68a !important;
}

.vbo-booking-review-cmd a:hover {
	background-color: #fef3c7 !important;
	color: #b45309 !important;
	transform: translateY(-2px) !important;
}

/* 5. Add Extras / Upselling (Blue Outline) */
.vbo-booking-upselling-wrap a {
	background-color: #eff6ff !important;
	color: #2563eb !important;
	border-color: #bfdbfe !important;
}

.vbo-booking-upselling-wrap a:hover {
	background-color: #dbeafe !important;
	color: #1d4ed8 !important;
	transform: translateY(-2px) !important;
}

/* Cancellation Form styling */
.vbo-booking-cancform-inner {
	background: #ffffff !important;
	border: 1px solid #fee2e2 !important;
	border-radius: 16px !important;
	padding: 24px !important;
	margin-top: 16px !important;
	box-shadow: 0 10px 15px -3px rgba(220, 38, 38, 0.03) !important;
}

.vbo-booking-cancform-inner .vbo-booking-canc-details-policy {
	font-family: 'Outfit', sans-serif !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	color: #991b1b !important;
	margin-bottom: 12px !important;
}

/* Booked Room Card Wrapper */
.vbo-booking-rooms-wrapper {
	margin-top: 28px !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 24px !important;
	margin-bottom: 28px !important;
}

/* Room Card container */
.vbvordroominfo {
	display: flex !important;
	background: #ffffff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 20px !important;
	overflow: hidden !important;
	box-shadow: 0 10px 15px -3px rgba(15, 23, 42, 0.02), 0 4px 6px -2px rgba(15, 23, 42, 0.02) !important;
	transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.vbvordroominfo:hover {
	transform: translateY(-4px) !important;
	box-shadow: 0 20px 25px -5px rgba(15, 23, 42, 0.06), 0 8px 10px -6px rgba(15, 23, 42, 0.06) !important;
}

@media (max-width: 768px) {
	.vbvordroominfo {
		flex-direction: column !important;
	}
	.vbo-booking-roomphoto {
		width: 100% !important;
		max-width: 100% !important;
		aspect-ratio: 16 / 9 !important;
	}
}

/* Room Card Photo */
.vbo-booking-roomphoto {
	width: 260px !important;
	flex-shrink: 0 !important;
	overflow: hidden !important;
	position: relative !important;
}

.vbo-booking-roomphoto img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.vbvordroominfo:hover .vbo-booking-roomphoto img {
	transform: scale(1.04) !important;
}

/* Room Card Details */
.vbordroomdet {
	padding: 28px !important;
	flex-grow: 1 !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	gap: 10px !important;
}

.vbvordroominfotitle {
	font-family: 'Outfit', sans-serif !important;
	font-size: 1.25rem !important;
	font-weight: 600 !important;
	color: #0f172a !important;
	display: block !important;
	line-height: 1.3 !important;
}

/* Occupancy Badge tags */
.vbordroomdetpeople {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	margin-bottom: 6px !important;
}

.vbordroomdetpeople span {
	display: inline-flex !important;
	align-items: center !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 0.8rem !important;
	color: #475569 !important;
	background-color: #f1f5f9 !important;
	padding: 6px 12px !important;
	border-radius: 8px !important;
	font-weight: 600 !important;
}

/* Pricing Rate block inside Room Card */
.vbo-booking-roomrate {
	margin-top: 8px !important;
	padding-top: 14px !important;
	border-top: 1px dashed #e2e8f0 !important;
}

.vbvordcoststitlemain {
	display: flex !important;
	align-items: baseline !important;
	justify-content: space-between !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
}

.vbo-booking-pricename {
	font-family: 'Outfit', sans-serif !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	color: #64748b !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
}

.room_cost {
	font-family: 'Outfit', sans-serif !important;
	font-size: 1.35rem !important;
	font-weight: 700 !important;
	color: #0f172a !important;
}

.room_cost .vbo_price {
	font-size: 1.35rem !important;
	font-weight: 700 !important;
}

/* Cancellation Policy inside Card */
.vbo-booking-canc-policy-wrap {
	margin-top: 10px !important;
	padding: 10px 14px !important;
	background-color: #f8fafc !important;
	border-left: 3px solid #cbd5e1 !important;
	border-radius: 0 10px 10px 0 !important;
	font-size: 0.8rem !important;
}

.vbo-booking-canc-policy-type span {
	font-weight: 700 !important;
	color: #475569 !important;
	font-family: 'Outfit', sans-serif !important;
}

.vbo-booking-canc-policy-descr {
	color: #64748b !important;
	margin-top: 4px !important;
	line-height: 1.4 !important;
}

/* Bottom Costs List & Total row */
.vbo-booking-costs-list {
	margin-top: 24px !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
}

.vbo-booking-cost-detail {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	background: #ffffff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 16px !important;
	padding: 16px 24px !important;
	box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.01) !important;
}

.vbo-booking-cost-lbl {
	font-family: 'Outfit', sans-serif !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	color: #475569 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
}

.vbo-booking-cost-val-number {
	font-family: 'Outfit', sans-serif !important;
	font-size: 1.2rem !important;
	font-weight: 700 !important;
	color: #0f172a !important;
}

/* Highlight the final total card to stand out */
.vbo-booking-cost-detail-total {
	background: #ffffff !important;
	border: 2px solid #0f172a !important;
	border-radius: 18px !important;
	padding: 20px 28px !important;
	box-shadow: 0 10px 15px -3px rgba(15, 23, 42, 0.03) !important;
}

.vbo-booking-cost-detail-total .vbo-booking-cost-lbl {
	font-size: 1.15rem !important;
	font-weight: 800 !important;
	color: #0f172a !important;
	letter-spacing: 0.5px !important;
}

.vbo-booking-cost-detail-total .vbo-booking-cost-val-number {
	font-size: 1.55rem !important;
	color: #f3615a !important; /* Theme Brand Accent color */
}

/* Discount details row variant */
.vbo-booking-cost-detail-discount {
	border-color: #fca5a5 !important;
	background-color: #fef2f2 !important;
}

.vbo-booking-cost-detail-discount .vbo-booking-cost-lbl {
	color: #991b1b !important;
}

.vbo-booking-cost-detail-discount .vbo-booking-cost-val-number {
	color: #dc2626 !important;
}

/* Check-in Instructions section */
.vbo-booking-room-checkin-instr {
	grid-column: 1 / -1 !important;
	background: #f8fafc !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 18px !important;
	padding: 24px !important;
	margin-top: 16px !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 20px !important;
}

.vbo-booking-room-instructions,
.vbo-booking-room-dac {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
}

.vbo-booking-room-instructions h4,
.vbo-booking-room-dac h4 {
	font-family: 'Outfit', sans-serif !important;
	font-size: 0.9rem !important;
	font-weight: 700 !important;
	color: #0f172a !important;
	margin: 0 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.8px !important;
}

.vbo-booking-room-instructions div {
	font-family: 'Inter', sans-serif !important;
	font-size: 0.875rem !important;
	line-height: 1.6 !important;
	color: #475569 !important;
}

.vbo-booking-room-dac-list {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
}

.vbo-booking-room-dac-code-wrap {
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px !important;
	background: #ffffff !important;
	border: 1px solid #cbd5e1 !important;
	padding: 10px 18px !important;
	border-radius: 10px !important;
	font-family: monospace !important;
	font-size: 1.15rem !important;
	font-weight: 700 !important;
	color: #0f172a !important;
	box-shadow: 0 2px 4px rgba(0,0,0,0.01) !important;
}