/* 
 * Streamline Elementor Baseline Styles 
 * Note: These will be expanded once the user provides design references.
 */

/* GRID CSS */
.sl-grid {
	display: grid;
	gap: 30px;
	margin-top: 20px;
}

.sl-grid-1 { grid-template-columns: 1fr; }
.sl-grid-2 { grid-template-columns: repeat(2, 1fr); }
.sl-grid-3 { grid-template-columns: repeat(3, 1fr); }
.sl-grid-4 { grid-template-columns: repeat(4, 1fr); }

/* Responsive Grid */
@media (max-width: 992px) {
	.sl-grid-3, .sl-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
	.sl-grid-2, .sl-grid-3, .sl-grid-4 { grid-template-columns: 1fr; }
}

.sl-property-card {
	background: #fff;
	border: 1px solid #e1e8ed;
	border-radius: 4px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.sl-property-card-image {
	height: 220px;
	background-size: cover;
	background-position: center;
	position: relative;
	border-bottom: 1px solid #e1e8ed;
}

.sl-property-badge {
	position: absolute;
	top: 15px;
	right: 15px;
	background: rgba(0,0,0,0.7);
	color: #fff;
	padding: 5px 12px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 600;
	backdrop-filter: blur(4px);
}

.sl-property-card-content {
	padding: 20px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.sl-property-title {
	margin: 0 0 10px 0;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.3;
}

.sl-property-title a {
	color: #2b5a6d;
	text-decoration: none !important;
	border: none !important;
	box-shadow: none !important;
	transition: color 0.3s ease;
}

.sl-property-title a:hover {
	color: #18506d;
}

.sl-property-type {
	font-size: 13px;
	color: #888;
	margin-bottom: 15px;
	display: flex;
	align-items: center;
	gap: 6px;
}

.sl-property-meta {
	display: flex;
	gap: 15px;
	font-size: 13px;
	color: #666;
	margin-top: auto;
	flex-wrap: wrap;
	align-items: center;
}

.sl-property-meta span {
	display: flex;
	align-items: center;
	gap: 5px;
}

.sl-property-meta strong {
	font-weight: 600;
	color: #555;
}

.sl-property-meta span i,
.sl-property-meta span svg {
	color: #888;
	font-size: 14px;
	width: 14px;
	height: 14px;
}

.sl-btn {
	display: inline-block;
	padding: 12px 24px;
	text-align: center;
	border-radius: 8px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.3s ease;
	margin-top: auto;
}

.sl-btn-primary {
	background: #0073e6;
	color: #fff;
}

.sl-btn-primary:hover {
	background: #005bb5;
	color: #fff;
}

/* 
 * Streamline Elementor Atomic Widgets Styles 
 * Flat Minimalist Design
 */

/* ==========================================================================
   WIDGET: GALLERY (Mosaico)
   ========================================================================== */
.sl-mosaic-gallery {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(2, 1fr);
	/* gap and height are now controlled dynamically via Elementor, defaults provided below */
	gap: 8px;
	height: 450px;
	border-radius: 8px;
	overflow: hidden;
}

.sl-gallery-item {
	background-size: cover;
	background-position: center;
	position: relative;
	display: block; /* Ensure a tags fill the grid */
	text-decoration: none;
	overflow: hidden;
}

.sl-gallery-item.sl-hover-overlay::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background-color: rgba(0, 0, 0, 0.3); /* Default hover overlay color */
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 1;
}

.sl-gallery-item.sl-hover-overlay:hover::before {
	opacity: 1;
}

.sl-gallery-item-0 {
	grid-column: 1 / 3;
	grid-row: 1 / 3;
}

.sl-gallery-see-all-btn {
	position: absolute;
	bottom: 15px;
	right: 15px;
	background: rgba(0, 0, 0, 0.75);
	color: #fff;
	border: none;
	padding: 8px 16px;
	border-radius: 4px;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	backdrop-filter: blur(4px);
	transition: background 0.3s ease;
	z-index: 2;
}

.sl-gallery-see-all-btn:hover {
	background: rgba(0, 0, 0, 0.9);
}

@media (max-width: 768px) {
	.sl-mosaic-gallery {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(3, 1fr);
	}
	.sl-gallery-item {
		display: block !important;
	}
	.sl-gallery-item-0 {
		grid-column: 1 / 2;
		grid-row: 1 / 3;
	}
	.sl-gallery-item-1 {
		grid-column: 2 / 3;
		grid-row: 1 / 2;
	}
	.sl-gallery-item-2 {
		grid-column: 2 / 3;
		grid-row: 2 / 3;
	}
	.sl-gallery-item-3 {
		grid-column: 1 / 2;
		grid-row: 3 / 4;
	}
	.sl-gallery-item-4 {
		grid-column: 2 / 3;
		grid-row: 3 / 4;
	}
}

/* ==========================================================================
   WIDGET: PROPERTY INFO BOX
   ========================================================================== */
.sl-property-info-box {
	border: 1px solid #eaeaea;
	border-radius: 8px;
	padding: 20px;
	background: #fff;
}

.sl-info-header, .sl-amenity-header {
	font-size: 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.sl-info-header-title {
	display: flex;
	align-items: center;
}

.sl-info-header-icon,
.sl-amenity-header-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 8px; /* Default margin, overridden by Elementor control */
}

/* Base size so inline SVG icons (Elementor "Inline Font Icons") never render at 0x0 when the widget has no
   Icon Size set; the widget's Icon Size / Toggle Size controls are more specific and override it. */
.sl-amenity-header-icon svg,
.sl-amenity-list-icon svg,
.sl-toggle-icon svg {
	width: 1em;
	height: 1em;
}

.sl-collapsible-header {
	cursor: pointer;
	user-select: none;
	transition: background 0.2s;
}

.sl-toggle-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #666;
}

.sl-toggle-expanded { display: block; }
.sl-toggle-collapsed { display: none; }

.sl-is-collapsed .sl-toggle-expanded { display: none; }
.sl-is-collapsed .sl-toggle-collapsed { display: block; }

.sl-info-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-top: 15px;
	border-top: 1px solid #f5f5f5;
	padding-top: 10px;
}

.sl-info-item {
	font-size: 14px;
	display: flex;
	justify-content: flex-start;
	gap: 8px;
}

.sl-info-label {
	color: #666;
}

.sl-info-value {
	color: #222;
	font-weight: 500;
}

@media (max-width: 500px) {
	.sl-info-grid {
		grid-template-columns: 1fr;
	}
}

/* Property Info tooltips (CSS only: hover, keyboard focus and tap) */
.sl-info-tooltip {
	position: relative;
	display: inline-flex;
	align-items: center;
	cursor: pointer;
	color: #c9a14a;
	font-size: 13px;
	outline: none;
}

.sl-info-tooltip svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.sl-info-tooltip-bubble {
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
	width: max-content;
	max-width: min(260px, calc(100vw - 32px));
	padding: 8px 10px;
	border-radius: 4px;
	--sl-tooltip-bg: #333;
	background: var(--sl-tooltip-bg);
	color: #fff;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
	text-align: left;
	white-space: normal;
	z-index: 20;
	/* display:none while closed: a hidden bubble near the right edge made the whole page scroll sideways on phones */
	display: none;
	pointer-events: none;
}

.sl-info-tooltip-bubble::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border: 6px solid transparent;
	border-top-color: var(--sl-tooltip-bg);
}

.sl-info-tooltip:hover .sl-info-tooltip-bubble,
.sl-info-tooltip:focus .sl-info-tooltip-bubble,
.sl-info-tooltip:focus-within .sl-info-tooltip-bubble {
	display: block;
}

/* ==========================================================================
   WIDGET: AMENITIES & FEATURES
   ========================================================================== */
.sl-property-amenities-wrapper {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.sl-amenity-group-box {
	border: 1px solid #eaeaea;
	border-radius: 8px;
	padding: 20px;
	background: #fff;
}

.sl-amenity-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	list-style: none;
	padding: 0;
	margin: 0;
	margin-top: 15px;
	border-top: 1px solid #f5f5f5;
	padding-top: 10px;
}

.sl-amenity-list li {
	font-size: 14px;
	color: #444;
	display: flex;
	align-items: center;
}

.sl-amenity-list-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 10px;
}

/* "Other Rules" (Terms and Conditions): label above the text, full width */
.sl-amenity-list li.sl-amenity-other-rules {
	grid-column: 1 / -1;
	display: block;
}

.sl-amenity-other-rules strong {
	display: block;
	margin-bottom: 4px;
}

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

/* ==========================================================================
   WIDGET: BOOKING FORM (Travel Dates)
   ========================================================================== */
.sl-booking-widget {
	border: 1px solid #eaeaea;
	border-radius: 8px;
	padding: 24px;
	background: #fff;
	box-shadow: 0 4px 15px rgba(0,0,0,0.02);
}

.sl-booking-header h3 {
	font-size: 18px;
	color: #1a2b4c;
	margin-top: 0;
	margin-bottom: 15px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.sl-calendar-legend {
	display: flex;
	gap: 12px;
	font-size: 12px;
	color: #666;
	margin-bottom: 20px;
	flex-wrap: wrap;
}

.legend-color {
	display: inline-block;
	width: 16px;
	height: 16px;
	vertical-align: middle;
	margin-right: 4px;
}
.legend-color.avail { background: #4cb49e; }
.legend-color.unavail { background: #e5e5e5; }
.legend-color.split-in { background: linear-gradient(135deg, #e5e5e5 50%, #4cb49e 50%); }
.legend-color.split-out { background: linear-gradient(135deg, #4cb49e 50%, #e5e5e5 50%); }

.sl-dates-container {
	margin-bottom: 20px;
}

.sl-date-group {
	margin-bottom: 15px;
}

.sl-date-group label {
	display: block;
	font-size: 11px;
	font-weight: bold;
	color: #444;
	margin-bottom: 5px;
	letter-spacing: 0.5px;
}

.sl-date-input {
	width: 100%;
	padding: 12px;
	border: 1px solid #ddd;
	border-radius: 6px;
	font-size: 14px;
	color: #333;
	outline: none;
	transition: border-color 0.2s;
}

.sl-date-input:focus {
	border-color: #4cb49e;
}

.sl-price-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	color: #444;
	margin-bottom: 20px;
}

.sl-price-table td {
	padding: 10px 0;
	border-bottom: 1px solid #f0f0f0;
}

.sl-price-table td:last-child {
	text-align: right;
	font-weight: 600;
	color: #222;
}

.sl-price-table .row-total td {
	background: #f4fbf9;
	font-size: 16px;
	color: #1b6354;
	padding: 15px 10px;
	border-bottom: none;
	border-radius: 6px;
	margin-top: 10px;
}

.sl-btn-book-now {
	width: 100%;
	background: #9b51e0; /* Purple from design */
	color: #fff;
	border: none;
	padding: 15px;
	border-radius: 8px;
	font-size: 16px;
	font-weight: bold;
	cursor: pointer;
	transition: background 0.3s, opacity 0.3s;
}

.sl-btn-book-now:hover {
	background: #8741c9;
}

.sl-btn-book-now:disabled {
	background: #ccc;
	cursor: not-allowed;
}

.sl-loading { color: #888; font-size: 13px; font-style: italic; }
.sl-error { color: #c00; font-size: 13px; }

/* ==========================================================================
   WIDGET: CALENDAR GRID (Rates/Availability)
   ========================================================================== */
.sl-calendar-widget {
	background: #fff;
	padding: 24px;
	border-radius: 8px;
	border: 1px solid #eaeaea;
}

.sl-calendar-header h3 {
	font-size: 18px;
	color: #1a2b4c;
	margin-top: 0;
}

.sl-calendar-grid-container {
	display: flex;
	gap: 20px;
	margin-top: 20px;
}

.sl-cal-month {
	flex: 1;
	border: 1px solid #f0f0f0;
	border-radius: 8px;
	overflow: hidden;
}

.sl-cal-month h4 {
	text-align: center;
	margin: 0;
	padding: 15px 0;
	background: #fff;
	font-size: 16px;
	border-bottom: 1px solid #f0f0f0;
}

.sl-cal-weekdays {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	text-align: center;
	font-size: 12px;
	color: #666;
	padding: 10px 0;
}

.sl-cal-days {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
}

.sl-cal-day {
	aspect-ratio: 1;
	border-right: 1px solid #fff;
	border-bottom: 1px solid #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	color: #fff;
	position: relative;
}

.sl-cal-day.empty { background: #fff; border: none; }
.sl-cal-day.available { background: #4cb49e; }
.sl-cal-day.unavailable { background: #e5e5e5; color: #999; }
.sl-cal-day.check-in { background: linear-gradient(135deg, #e5e5e5 50%, #4cb49e 50%); }
.sl-cal-day.check-out { background: linear-gradient(135deg, #4cb49e 50%, #e5e5e5 50%); }

.day-price {
	font-size: 10px;
	background: rgba(0,0,0,0.2);
	padding: 2px 4px;
	border-radius: 4px;
	margin-top: 2px;
}

.sl-calendar-controls {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 20px;
}

.sl-drag-hint {
	font-size: 13px;
	color: #888;
	font-style: italic;
	margin: 0;
}

.sl-calendar-buttons button {
	background: #fff;
	border: 1px solid #ddd;
	padding: 8px 16px;
	border-radius: 4px;
	cursor: pointer;
	font-size: 13px;
	font-weight: 500;
	transition: all 0.2s;
}

.sl-calendar-buttons button:hover {
	border-color: #999;
}

@media (max-width: 768px) {
	.sl-calendar-grid-container {
		flex-direction: column;
	}
}

/* ==========================================================================
   Property Calendar Widget
   ========================================================================== */

.st-custom-calendar-wrapper {
    position: relative;
    width: 100%;
}

.st-calendar-section-title {
    margin-bottom: 20px;
}

/* Legend */
.st-legend-top {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 20px;
}

.st-legend-top .legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}

.st-legend-top .legend-box {
    width: 28px;
    height: 28px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
}

/* Side-by-Side Months — optimized for SwipeDrag */
.st-calendar-inner-wrapper {
    overflow: hidden !important;
    position: relative;
    cursor: grab;
    padding-bottom: 25px;
    margin-bottom: 5px;
    width: 100%;
    scrollbar-width: thin;
    scrollbar-color: #4dbfaa #f1f1f1;
}

.st-calendar-inner-wrapper:active,
.st-calendar-inner-wrapper.active {
    cursor: grabbing;
}

.st-calendar-track {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    gap: 20px !important;
    will-change: transform;
}

.st-calendar-inner-wrapper.is-dragging * {
    pointer-events: none;
    user-select: none;
}

/* Scrollbar */
.st-calendar-inner-wrapper::-webkit-scrollbar {
    height: 12px !important;
    display: block !important;
}
.st-calendar-inner-wrapper::-webkit-scrollbar-track {
    background: #f8f9fa;
    border-radius: 10px;
    border: 1px solid #eee;
}
.st-calendar-inner-wrapper::-webkit-scrollbar-thumb {
    background: #4dbfaa;
    border-radius: 10px;
    border: 3px solid #f8f9fa;
}

/* Month wrapper */
.st-month-wrapper {
    flex: 0 0 calc(100% - 20px); /* Default to 1 on mobile */
    display: flex !important;
    flex-direction: column !important;
    border: 1px solid #ededed;
    padding: 0;
    border-radius: 12px;
    background: #fff;
    box-sizing: border-box !important;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

@media (min-width: 768px) {
    .st-month-wrapper {
        flex: 0 0 calc(50% - 20px) !important;
    }
}

.st-month-wrapper .month-title {
    text-align: left;
    font-size: 17px;
    font-weight: 700;
    color: #222;
    padding: 16px 18px;
    border-bottom: 1px solid #e8e8e8;
    background: #fff;
}

/* Table Structure */
.st-calendar-table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
    margin-bottom: 0 !important;
}

.st-calendar-table th {
    background: #fff;
    padding: 9px 6px;
    font-size: 12px;
    font-weight: 600;
    color: #999;
    text-transform: none;
    letter-spacing: 0.3px;
    border-bottom: 1px solid #eee;
    text-align: center;
}

.st-calendar-table td {
    border: 0.5px solid #ececec !important;
    height: 50px;
    vertical-align: top;
    text-align: left;
    position: relative;
    padding: 6px !important;
    min-width: 40px;
}

.st-calendar-table td.pad {
    border-color: transparent !important;
    background: #fff !important;
}

.st-day-num {
    display: block;
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    text-align: left;
    padding-left: 2px;
    margin-bottom: 3px;
    color: #222;
}

/* Default Colors (Elementor can override) */
.st-calendar-table td.calendar-available { background: #4dbfaa !important; }
.st-calendar-table td.calendar-available .st-day-num { color: #fff !important; }
.st-calendar-table td.calendar-reserved, .st-calendar-table td.has_past { background: #e8e8e8 !important; }
.st-calendar-table td.calendar-reserved .st-day-num, .st-calendar-table td.has_past .st-day-num { color: #777 !important; }
.st-calendar-table td.calendar-check-out { background: linear-gradient(135deg, #4dbfaa 50%, #e8e8e8 50%) !important; }
.st-calendar-table td.calendar-check-out .st-day-num { color: #fff !important; }
.st-calendar-table td.calendar-check-in { background: linear-gradient(135deg, #e8e8e8 50%, #4dbfaa 50%) !important; }
.st-calendar-table td.calendar-check-in .st-day-num { color: #444 !important; }

/* Legend Box defaults matching table */
.st-legend-top .legend-box.calendar-available { background: #4dbfaa; }
.st-legend-top .legend-box.calendar-reserved { background: #e8e8e8; }
.st-legend-top .legend-box.calendar-check-in { background: linear-gradient(135deg, #e8e8e8 50%, #4dbfaa 50%); }
.st-legend-top .legend-box.calendar-check-out { background: linear-gradient(135deg, #4dbfaa 50%, #e8e8e8 50%); }

/* Price badge */
.st-calendar-table td a.price-show {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 3px 4px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    background: #1a6b61 !important;
    color: #fff !important;
    border-radius: 4px !important;
    text-align: center !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}

/* Navigation Indicators */
.st-swipe-indicator {
    text-align: center;
    color: #888;
    font-size: 13px;
    margin: 10px 0;
}

.st-calendar-nav-bottom {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
}

.st-nav-btn {
    background: #fff;
    border: 1px solid #ddd;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    color: #444;
    cursor: pointer;
    transition: all 0.2s;
}

.st-nav-btn:hover {
    background: #f8f9fa;
    border-color: #ccc;
}

/* Today Highlight */
.calendar-today {
    box-shadow: inset 0 0 0 2px #ff5a5f !important;
}

/* Past dates */
.st-calendar-table .has_past {
    background-color: #eceff3 !important;
    color: #d0d5de !important;
}

/* Days Streamline does not allow booking (no arrival, minimum stay does not fit, booked or past): not selectable */
.st-calendar-table td.is-disabled,
.st-calendar-table td.is-disabled .st-day-num {
    cursor: not-allowed;
}
.st-calendar-table td a.date-booking-link {
    cursor: pointer;
}
.st-calendar-inner-wrapper.active td,
.st-calendar-inner-wrapper.active td * {
    cursor: grabbing !important;
}
.st-calendar-table .has_past .st-day-num {
    color: #d0d5de !important;
}

/* Price badge */
.st-calendar-table td a.price-show,
.st-calendar-table td a.price-show-link {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 3px 4px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    background: #1a6b61 !important;
    color: #fff !important;
    border-radius: 4px !important;
    text-align: center !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    border: none !important;
    box-shadow: none !important;
    line-height: 1.4 !important;
    transition: background 0.2s !important;
}

.st-calendar-table td a.price-show:hover,
.st-calendar-table td a.price-show-link:hover {
    background: #145249 !important;
    animation: none !important;
}

/* ── Specials (Specials Grid and Property Specials widgets) ───────────────── */
.sl-specials-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.sl-specials-grid, .sl-specials-grid * { box-sizing: border-box; }
.sl-special-card { background: #fff; border: 1px solid #e0e0e0; border-radius: 4px; overflow: hidden; display: flex; flex-direction: column; }
.sl-special-image { display: block; position: relative; height: 220px; background: #e9eef0 center / cover no-repeat; text-decoration: none; flex-shrink: 0; }
.sl-special-strip { position: absolute; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, .75); color: #fff; text-align: center; padding: 5px 8px; font-size: 12px; font-weight: 700; line-height: 1.4; }
.sl-special-content { display: flex; flex-direction: column; align-items: center; flex-grow: 1; padding: 18px 20px 20px; }
.sl-special-title { width: 100%; margin: 0 0 14px; font-size: 15px; font-weight: 600; line-height: 1.3; text-align: center; text-transform: uppercase; color: #5e9c9c; }
.sl-special-title a { color: inherit; }
/* the theme underlines content links: never inside the cards (name, photo, Details button) */
.sl-special-card a, .sl-special-card a:hover, .sl-special-card a:focus { text-decoration: none !important; }
.sl-special-heading { width: 100%; margin-bottom: 14px; padding: 9px 12px; border-radius: 3px; background: #9abfb8; color: #fff; font-size: 13px; font-weight: 700; line-height: 1.4; text-align: center; }
.sl-special-text { width: 100%; flex-grow: 1; margin-bottom: 18px; padding: 14px; border: 1px solid #e0e0e0; border-radius: 2px; background: #fafafa; color: #333; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.sl-special-btn { display: block; width: 100%; margin-top: auto; padding: 11px 0; border-radius: 4px; background: #bd1414; color: #fff; font-size: 14px; font-weight: 700; text-align: center; text-decoration: none; transition: background .25s ease; }
.sl-special-btn:hover, .sl-special-btn:focus { background: #9e1010; color: #fff; text-decoration: none; }
.sl-specials-empty { text-align: center; padding: 60px 20px; background: #f9f9f9; border-radius: 8px; }
.sl-specials-empty h3 { margin: 0 0 10px; color: #333; }
.sl-specials-empty p { margin: 0; color: #666; }
@media (max-width: 1024px) { .sl-specials-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .sl-specials-grid { grid-template-columns: minmax(0, 1fr); } }

/* Checkout opened with no booking in progress (BP - Checkout Header): centered text, button below like the home Search button */
.sl-checkout-empty { display: flex; flex-direction: column; align-items: center; padding: 40px 20px; }
.sl-checkout-empty-text { max-width: 640px; margin: 0 0 24px; text-align: center; font-size: 20px; line-height: 1.5; color: #333; }
.sl-checkout-empty .sl-checkout-empty-btn,
.sl-checkout-empty .sl-checkout-empty-btn:visited { display: inline-block; min-width: 130px; padding: 12px 40px; border: 1px solid #23405a; border-radius: 30px; background-color: #23405a; color: #fff; font-family: Lato, sans-serif; font-size: 15px; font-weight: 600; line-height: 1.4; text-align: center; text-decoration: none !important; box-shadow: none; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.sl-checkout-empty .sl-checkout-empty-btn:hover,
.sl-checkout-empty .sl-checkout-empty-btn:focus { background-color: #275f91; border-color: #275f91; color: #fff; text-decoration: none !important; }
@media (max-width: 767px) { .sl-checkout-empty-text { font-size: 18px; } }
/* Only in that state: the empty columns of the same row (e.g. the Summary's, which prints nothing) take no space and
   the message's column spans the row, so the message is centered on the page */
.e-con-inner:has(.sl-checkout-empty) > .e-con:not(:has(.elementor-widget)),
.e-con:has(.sl-checkout-empty) > .e-con:not(:has(.elementor-widget)) { display: none; }
.e-con-inner:has(.sl-checkout-empty) > .e-con:has(.sl-checkout-empty),
.e-con:has(.sl-checkout-empty) > .e-con:has(.sl-checkout-empty) { --width: 100%; width: 100%; max-width: 100%; flex-basis: 100%; }

/* Same box and header as Property Info / Property Amenities (.sl-amenity-group-box, .sl-amenity-header, .sl-amenity-list) */
.sl-property-specials { border: 1px solid #eaeaea; border-radius: 8px; padding: 20px; background: #fff; }
.sl-property-specials-header { font-size: 16px; display: flex; align-items: center; justify-content: space-between; }
.sl-property-specials-icon { display: flex; align-items: center; justify-content: center; margin-right: 8px; }
.sl-property-specials-icon svg { width: 1em; height: 1em; fill: #c79a4a; }
.sl-property-specials-icon i { color: #c79a4a; }
.sl-property-specials-title { font-weight: 700; color: #c79a4a; }
.sl-property-specials .sl-toggle-icon svg { fill: #3d3d3d; }
.sl-property-specials .sl-toggle-icon i { color: #3d3d3d; }
.sl-property-specials-body { margin-top: 15px; border-top: 1px solid #f5f5f5; padding-top: 10px; font-size: 14px; color: #444; }
.sl-property-specials-body.sl-no-header { margin-top: 0; border-top: 0; padding-top: 0; }
.sl-property-special + .sl-property-special { margin-top: 14px; padding-top: 14px; border-top: 1px solid #eee; }
.sl-property-special-heading { font-weight: 700; margin-bottom: 5px; }
.sl-property-special-text { line-height: 1.5; overflow-wrap: anywhere; }


/* ── Similar Listings widget ──────────────────────────────────────────────── */
.sl-similar, .sl-similar * { box-sizing: border-box; }
.sl-similar-heading { margin: 0 0 20px; }
.sl-similar-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sl-similar-card { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid #e5e5e5; border-radius: 6px; transition: box-shadow .25s ease, transform .25s ease; }
.sl-similar-image { display: block; position: relative; height: 210px; overflow: hidden; background: #e9eef0; flex-shrink: 0; }
.sl-similar-image-inner { position: absolute; inset: 0; background: center / cover no-repeat; transition: transform .4s ease; }
.sl-similar-badge { position: absolute; left: 12px; top: 12px; padding: 4px 10px; border-radius: 3px; background: rgba(0, 0, 0, .65); color: #fff; font-size: 12px; font-weight: 600; line-height: 1.4; }
.sl-similar-content { display: flex; flex-direction: column; flex-grow: 1; padding: 16px 18px 18px; }
.sl-similar-name { margin: 0 0 6px; font-size: 16px; line-height: 1.3; }
.sl-similar-type { margin-bottom: 12px; color: #666; font-size: 13px; }
.sl-similar-type svg { vertical-align: -2px; margin-right: 4px; }
.sl-similar-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 16px; padding-top: 12px; border-top: 1px solid #eee; color: #444; font-size: 13px; }
.sl-similar-meta span { display: inline-flex; align-items: center; gap: 6px; }
.sl-similar-btn { display: block; width: 100%; margin-top: auto; padding: 10px 16px; border-radius: 4px; background: #145249; color: #fff; font-weight: 600; text-align: center; transition: background .25s ease, color .25s ease; }
.sl-similar-btn:hover, .sl-similar-btn:focus { background: #0e3a34; color: #fff; }
/* the theme underlines content links: never inside the cards */
.sl-similar-card a, .sl-similar-card a:hover, .sl-similar-card a:focus { text-decoration: none !important; }
.sl-similar-name a { color: inherit; }
.sl-similar-empty { margin: 0; color: #777; }
@media (max-width: 1024px) { .sl-similar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .sl-similar-grid { grid-template-columns: minmax(0, 1fr); } }
