/**
 * TourMaster Homepage Booking Widget Styles
 * High-fidelity, premium, responsive layout.
 */

.tourmaster-home-booking-widget-wrap {
	max-width: 440px;
	margin: 20px 0;
	padding: 0;
}

.tourmaster-home-booking-widget-card {
	background: #ffffff;
	border-radius: 16px;
	border: 1px solid rgba(0, 0, 0, 0.06);
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
	padding: 30px 25px;
	font-family: inherit;
	box-sizing: border-box;
}

.tourmaster-home-booking-widget-title {
	font-size: 20px;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0 0 25px 0;
	padding-bottom: 12px;
	border-bottom: 3px solid #d81029;
	display: flex;
	align-items: center;
	gap: 10px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.tourmaster-home-booking-widget-title i {
	color: #d81029;
	font-size: 18px;
}

.tourmaster-home-booking-field {
	margin-bottom: 20px;
}

.tourmaster-home-booking-label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	color: #666666;
	margin-bottom: 8px;
	letter-spacing: 0.8px;
}

.tourmaster-home-booking-select-wrap {
	position: relative;
	width: 100%;
}

.tourmaster-home-booking-select-wrap::after {
	content: "\f107";
	font-family: "FontAwesome" !important;
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	color: #777777;
	font-size: 16px;
	transition: transform 0.2s ease;
}

.tourmaster-home-booking-select {
	width: 100% !important;
	height: 48px !important;
	background: #f8f9fa !important;
	border: 1px solid #e0e0e0 !important;
	border-radius: 8px !important;
	padding: 0 40px 0 15px !important;
	font-size: 14px !important;
	color: #333333 !important;
	outline: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	transition: all 0.3s ease !important;
	box-shadow: none !important;
	cursor: pointer;
}

.tourmaster-home-booking-select:focus {
	background: #ffffff !important;
	border-color: #d81029 !important;
	box-shadow: 0 0 0 3px rgba(216, 16, 41, 0.12) !important;
}

/* Date Picker Input Styles */
.tourmaster-home-booking-input-wrap {
	position: relative;
	width: 100%;
}

.tourmaster-home-booking-input {
	width: 100% !important;
	height: 48px !important;
	background: #f8f9fa !important;
	border: 1px solid #e0e0e0 !important;
	border-radius: 8px !important;
	padding: 0 40px 0 15px !important;
	font-size: 14px !important;
	color: #333333 !important;
	outline: none !important;
	transition: all 0.3s ease !important;
	box-shadow: none !important;
	cursor: pointer;
	box-sizing: border-box !important;
}

.tourmaster-home-booking-input:focus {
	background: #ffffff !important;
	border-color: #d81029 !important;
	box-shadow: 0 0 0 3px rgba(216, 16, 41, 0.12) !important;
}

.tourmaster-home-booking-input-wrap::after {
	content: "\f073";
	font-family: "FontAwesome" !important;
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	color: #777777;
	font-size: 16px;
}

/* Loading State for Select */
.tourmaster-loading {
	opacity: 0.6;
	pointer-events: none;
}

/* Live & Initial Pricing Layout - Flat modern styling, no shadow */
.tourmaster-home-booking-price-container {
	background: #fff5f6 !important;
	border: 1px solid rgba(216, 16, 41, 0.1) !important;
	border-radius: 12px !important;
	padding: 15px 20px !important;
	margin: 25px 0 !important;
	transition: all 0.3s ease !important;
	box-shadow: none !important;
}

/* Ensure no inner boxes, shadows or borders in price card */
.tourmaster-home-booking-price-container * {
	border: none !important;
	box-shadow: none !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}

.tourmaster-home-booking-price-inner {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
}

.tourmaster-price-title {
	font-size: 12px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	color: #666666 !important;
	letter-spacing: 0.5px !important;
	display: inline-block !important;
}

.tourmaster-home-booking-price-container .tourmaster-header-price {
	display: block !important;
}

.tourmaster-home-booking-price-container .tourmaster-tour-price-wrap {
	display: flex !important;
	align-items: baseline !important;
	gap: 6px !important;
}

.tourmaster-home-booking-price-container .tourmaster-tour-price .tourmaster-head {
	display: inline-block !important;
	margin-right: 4px !important;
}

.tourmaster-home-booking-price-container .tourmaster-tour-price .tourmaster-head i {
	color: #d81029 !important;
	font-size: 16px !important;
}

.tourmaster-home-booking-price-container .tourmaster-tour-price .tourmaster-tail {
	font-size: 24px !important;
	font-weight: 800 !important;
	color: #d81029 !important;
}

.tourmaster-home-booking-price-container .tourmaster-tour-discount-price {
	font-size: 16px !important;
	text-decoration: line-through !important;
	color: #999999 !important;
	font-weight: 600 !important;
}

/* Flexbox layout to stably align the price container above the button */
#tourmaster-home-booking-form {
	display: flex !important;
	flex-direction: column !important;
}

#tourmaster-home-booking-form > div {
	order: 2 !important;
}

#tourmaster-home-booking-form > .tourmaster-home-booking-field {
	order: 1 !important;
}

#tourmaster-home-booking-form > .tourmaster-home-booking-price-container {
	order: 3 !important;
}

#tourmaster-home-booking-form > .tourmaster-tour-booking-submit {
	order: 4 !important;
}

/* Highly specific resets to remove theme-injected bullets/lines/dots */
body #tourmaster-home-booking-form,
body #tourmaster-home-booking-form ul,
body #tourmaster-home-booking-form li,
body #tourmaster-home-booking-form div {
	list-style: none !important;
	list-style-type: none !important;
	background-image: none !important;
}

body #tourmaster-home-booking-form li::before,
body #tourmaster-home-booking-form li::after,
body #tourmaster-home-booking-form div::before,
body #tourmaster-home-booking-form div::after,
body #tourmaster-home-booking-form ul::before,
body #tourmaster-home-booking-form ul::after {
	content: none !important;
	background: none !important;
	display: none !important;
	border: none !important;
}

#tourmaster-home-booking-form ul {
	margin: 0 !important;
	padding: 0 !important;
}

#tourmaster-home-booking-form li {
	margin: 0 0 20px 0 !important;
	padding: 0 !important;
}

/* Dynamic Option Fields Appended by TourMaster */
#tourmaster-home-booking-form .tourmaster-tour-booking-date,
#tourmaster-home-booking-form .tourmaster-tour-booking-room,
#tourmaster-home-booking-form .tourmaster-tour-booking-people {
	margin-bottom: 20px !important;
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
}

/* Add calendar / check icons styled correctly */
#tourmaster-home-booking-form .tourmaster-tour-booking-date > i,
#tourmaster-home-booking-form .tourmaster-tour-booking-room > i,
#tourmaster-home-booking-form .tourmaster-tour-booking-people > i {
	display: none !important; /* Hide defaults if they don't match card style */
}

/* Package select box layout */
#tourmaster-home-booking-form .tourmaster-tour-booking-package {
	background: #f8f9fa !important;
	border: 1px solid #e0e0e0 !important;
	border-radius: 8px !important;
	padding: 10px 15px !important;
	margin-bottom: 20px !important;
}

/* Dropdown list wraps */
#tourmaster-home-booking-form .tourmaster-combobox-list-wrap {
	position: relative !important;
}

#tourmaster-home-booking-form .tourmaster-combobox-list-display {
	border: 1px solid #e0e0e0 !important;
	border-radius: 8px !important;
	padding: 12px 15px !important;
	background: #ffffff !important;
	cursor: pointer !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	height: 48px !important;
	box-sizing: border-box !important;
}

#tourmaster-home-booking-form .tourmaster-combobox-list-display::after {
	content: "\f107" !important;
	font-family: "FontAwesome" !important;
	position: absolute !important;
	right: 15px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	color: #777777 !important;
	font-size: 16px !important;
}

/* Person Select Dropdowns styling inside dynamic content */
#tourmaster-home-booking-form .tourmaster-tour-booking-people-container .tourmaster-tour-booking-people-item {
	margin-bottom: 15px !important;
}

#tourmaster-home-booking-form select {
	width: 100% !important;
	height: 48px !important;
	border: 1px solid #e0e0e0 !important;
	border-radius: 8px !important;
	background: #f8f9fa !important;
	padding: 0 15px !important;
	font-size: 14px !important;
	outline: none !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}

#tourmaster-home-booking-form select:focus {
	background: #ffffff !important;
	border-color: #d81029 !important;
	box-shadow: 0 0 0 3px rgba(216, 16, 41, 0.12) !important;
}

/* Booking Submit Area */
#tourmaster-home-booking-form .tourmaster-tour-booking-submit {
	margin-top: 30px !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
}

#tourmaster-home-booking-form .tourmaster-tour-booking-submit svg,
#tourmaster-home-booking-form .tourmaster-tour-booking-submit .tourmaster-tour-booking-next-sign,
#tourmaster-home-booking-form .tourmaster-tour-booking-submit i.fa-check-circle {
	display: none !important; /* Hide old background icon graphics */
}

#tourmaster-home-booking-form .tourmaster-tour-booking-submit-input {
	margin: 0 !important;
	padding: 0 !important;
}

/* Submit/Book Now Button styling */
#tourmaster-home-booking-form .tourmaster-button,
#tourmaster-home-booking-form .tourmaster-tour-booking-submit input[type="submit"] {
	display: block !important;
	width: 100% !important;
	height: 52px !important;
	background: linear-gradient(135deg, #d81029, #b50b1f) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 8px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	text-align: center !important;
	line-height: 52px !important;
	padding: 0 !important;
	box-shadow: 0 6px 16px rgba(216, 16, 41, 0.25) !important;
}

#tourmaster-home-booking-form .tourmaster-button:hover,
#tourmaster-home-booking-form .tourmaster-tour-booking-submit input[type="submit"]:hover {
	background: linear-gradient(135deg, #f01633, #d81029) !important;
	box-shadow: 0 8px 20px rgba(216, 16, 41, 0.35) !important;
	transform: translateY(-1px) !important;
}

#tourmaster-home-booking-form .tourmaster-button:active,
#tourmaster-home-booking-form .tourmaster-tour-booking-submit input[type="submit"]:active {
	transform: translateY(1px) !important;
	box-shadow: 0 4px 10px rgba(216, 16, 41, 0.2) !important;
}

/* Error message styling */
#tourmaster-home-booking-form .tourmaster-tour-booking-submit-error,
.tourmaster-home-booking-widget-card .tourmaster-tour-booking-submit-error {
	background: #ba4a4a !important;
	color: #ffffff !important;
	border-radius: 6px !important;
	padding: 10px 15px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	margin-top: 15px !important;
	text-align: center !important;
	border: none !important;
}

/* Premium jQuery UI Datepicker Calendar Popup styling */
#ui-datepicker-div {
	display: none;
	background: #ffffff !important;
	border: 1px solid rgba(0, 0, 0, 0.08) !important;
	border-radius: 14px !important;
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15) !important;
	padding: 16px !important;
	width: 290px !important;
	box-sizing: border-box !important;
	font-family: inherit !important;
	z-index: 999999 !important;
}

/* Header style (Month and Year name area) */
#ui-datepicker-div .ui-datepicker-header {
	position: relative !important;
	padding: 8px 0 !important;
	background: transparent !important;
	border: none !important;
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
}

#ui-datepicker-div .ui-datepicker-title {
	margin: 0 auto !important;
	color: #333333 !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	text-align: center !important;
}

/* Navigation buttons (prev, next month) */
#ui-datepicker-div .ui-datepicker-prev,
#ui-datepicker-div .ui-datepicker-next {
	position: absolute !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 30px !important;
	height: 30px !important;
	border-radius: 50% !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: #f5f5f5 !important;
	border: none !important;
	transition: all 0.2s ease !important;
}

#ui-datepicker-div .ui-datepicker-prev:hover,
#ui-datepicker-div .ui-datepicker-next:hover {
	background: #eee !important;
}

#ui-datepicker-div .ui-datepicker-prev {
	left: 0 !important;
}

#ui-datepicker-div .ui-datepicker-next {
	right: 0 !important;
}

/* Hide default text/span in prev/next and use custom styles */
#ui-datepicker-div .ui-datepicker-prev span,
#ui-datepicker-div .ui-datepicker-next span {
	display: none !important;
}

#ui-datepicker-div .ui-datepicker-prev::after {
	content: "\f104"; /* FontAwesome Angle Left */
	font-family: "FontAwesome" !important;
	color: #555555 !important;
	font-size: 16px !important;
}

#ui-datepicker-div .ui-datepicker-next::after {
	content: "\f105"; /* FontAwesome Angle Right */
	font-family: "FontAwesome" !important;
	color: #555555 !important;
	font-size: 16px !important;
}

/* Days table */
#ui-datepicker-div .ui-datepicker-calendar {
	width: 100% !important;
	border-collapse: collapse !important;
	margin-top: 10px !important;
	border: none !important;
}

/* Day labels th */
#ui-datepicker-div .ui-datepicker-calendar th {
	padding: 6px 0 !important;
	text-align: center !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	color: #999999 !important;
	text-transform: uppercase !important;
	border: none !important;
}

/* Date cells td */
#ui-datepicker-div .ui-datepicker-calendar td {
	padding: 2px !important;
	text-align: center !important;
	border: none !important;
}

/* Active selectable days */
#ui-datepicker-div .ui-datepicker-calendar td a {
	display: block !important;
	width: 32px !important;
	height: 32px !important;
	line-height: 32px !important;
	border-radius: 50% !important;
	text-align: center !important;
	color: #333333 !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	text-decoration: none !important;
	margin: 0 auto !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	transition: all 0.2s ease !important;
}

/* Highlighting Available Dates */
#ui-datepicker-div .ui-datepicker-calendar td.tourmaster-datepicker-available a {
	color: #000000 !important;
	font-weight: 700 !important;
	background: rgba(216, 16, 41, 0.05) !important;
}

#ui-datepicker-div .ui-datepicker-calendar td.tourmaster-datepicker-available a:hover {
	background: rgba(216, 16, 41, 0.15) !important;
	color: #d81029 !important;
}

/* Disabled days */
#ui-datepicker-div .ui-datepicker-calendar td.ui-datepicker-unselectable span {
	display: block !important;
	width: 32px !important;
	height: 32px !important;
	line-height: 32px !important;
	color: #dddddd !important;
	font-size: 13px !important;
	margin: 0 auto !important;
	background: transparent !important;
	border: none !important;
	cursor: not-allowed !important;
}

/* Selected Day state */
#ui-datepicker-div .ui-datepicker-calendar td a.ui-state-active {
	background: #d81029 !important;
	color: #ffffff !important;
	font-weight: 700 !important;
	box-shadow: 0 4px 10px rgba(216, 16, 41, 0.3) !important;
}

/* Stacking Context Safeguards for Single Tour Sidebar and Svelte Widget */
.tourmaster-booking-sveltekit-wrap,
.tourmaster-booking-sveltekit-root {
	position: relative !important;
	z-index: 9999 !important;
	overflow: visible !important;
}

.tourmaster-tour-booking-bar-widget {
	position: relative !important;
	z-index: 10 !important;
}

.traveltour-sidebar-area {
	overflow: visible !important;
}

