/**
 * Enix Booking Rental Plugin - Public CSS
 * Version: 1.0.5 — Pixel-perfect match to live site screenshot
 *
 * KEY COLORS from image:
 *   Dark teal (nav buttons, inactive tab): #2d6b6b  
 *   Active orange (Month btn, BOOKING btn, totals): #f26522
 *   White card background, light gray inputs
 */

:root {
	--enix-teal:         #2d6b6b;
	--enix-teal-hover:   #245858;
	--enix-orange:       #f26522;
	--enix-orange-hover: #d95b1a;
	/* Default to theme font (WordPress default). Override per-widget via Elementor Style tab. */
	--enix-sans: inherit;
}

/* ============================================================
   BOOKING FORM WIDGET
   ============================================================ */

.enix-booking-form-widget {
	font-family: var(--enix-sans);
	background: #ffffff;
	border: none;
	border-radius: 10px;
	padding: 0;
	box-shadow: none;
	margin: 0 auto;
	box-sizing: border-box;
	overflow: hidden;
}

.enix-booking-form-widget::before {
	display: none !important;
}

.enix-booking-form-widget * {
	box-sizing: border-box;
}

/* ---- TABS — dark teal pill buttons ---- */
.enix-bf-tabs {
	display: flex;
	align-items: stretch;
	gap: 0;
	padding: 14px 16px 0 16px;
	border-bottom: none;
	margin-bottom: 0;
}

.enix-bf-tab {
	flex: 1;
	background: var(--enix-teal);
	border: none;
	border-radius: 6px 6px 0 0;
	padding: 11px 10px;
	font-family: var(--enix-sans);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	color: #ffffff;
	cursor: pointer;
	letter-spacing: 0.5px;
	text-align: center;
	transition: background 0.18s;
	margin-right: 4px;
	opacity: 0.72;
}

.enix-bf-tab:last-child {
	margin-right: 0;
}

/* Active tab: same teal but full opacity (brighter) */
.enix-bf-tab.active {
	opacity: 1;
	background: var(--enix-teal);
}

.enix-bf-tab:hover {
	opacity: 1;
}

/* Form body padding */
.enix-bf-form {
	padding: 16px 16px 20px 16px;
}

/* ---- FORM ROWS ---- */
.enix-bf-row {
	display: flex;
	gap: 12px;
	margin-bottom: 14px;
}

.enix-bf-col {
	flex: 1;
	min-width: 0;
}

.enix-bf-col-full {
	width: 100%;
	margin-bottom: 14px;
}

/* ---- LABELS ---- */
.enix-bf-label {
	display: block;
	font-size: 13px;
	font-weight: 500;
	color: #333333;
	margin-bottom: 5px;
}

/* ---- INPUTS ---- */
.enix-bf-input {
	width: 100%;
	padding: 9px 11px;
	border: 1px solid #d0d0d0;
	border-radius: 5px;
	font-family: var(--enix-sans);
	font-size: 13px;
	font-weight: 400;
	color: #444444;
	background-color: #ffffff;
	outline: none;
	transition: border-color 0.15s;
	-webkit-appearance: none;
	appearance: none;
}

.enix-bf-input::placeholder {
	color: #bbbbbb;
}

/* Date inputs */
.enix-bf-input[name="pickup_date"],
.enix-bf-input[name="dropoff_date"] {
	background: #ffffff;
	cursor: pointer;
	border-color: #d8d8d8;
	height: 50px;
}

/* Guests / number — very light gray */
.enix-bf-input[type="number"] {
	background-color: #f5f5f5;
	border-color: #d8d8d8;
	height: 50px;
}

.enix-bf-input:focus {
	border-color: var(--enix-teal);
	box-shadow: 0 0 0 2px rgba(45,107,107,0.12);
}

/* ---- SUMMARY ---- */
.enix-bf-summary {
	margin: 10px 0 14px;
	padding: 0;
	background: none;
	border: none;
}

.enix-bf-summary-row {
	display: flex;
	align-items: baseline;
	gap: 4px;
	margin-bottom: 2px;
	line-height: 1.6;
}

.enix-bf-summary-row:last-child {
	margin-bottom: 0;
}

.enix-bf-summary-label {
	font-size: 13px;
	font-weight: 400;
	color: #555555;
}

/* Total value — orange bold */
.enix-bf-total-value {
	font-size: 18px;
	font-weight: 800;
	color: var(--enix-orange);
}

/* Items available value — orange bold */
.enix-bf-available-value {
	font-size: 15px;
	font-weight: 800;
	color: var(--enix-orange);
}

/* ---- BOOKING BUTTON — solid orange, rounded, uppercase ---- */
.enix-bf-submit-container {
	margin-top: 12px;
}

.enix-bf-submit {
	display: inline-block;
	background: var(--enix-orange);
	color: #ffffff;
	font-family: var(--enix-sans);
	font-size: 14px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 12px 32px;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	transition: background 0.15s;
	line-height: 1;
}

.enix-bf-submit::after {
	display: none !important;
	content: none !important;
}

.enix-bf-submit:hover {
	background: var(--enix-orange-hover);
}

.enix-bf-submit:active {
	transform: scale(0.98);
}

/* ---- MESSAGES ---- */
.enix-bf-message {
	margin-top: 12px;
	padding: 10px 12px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 500;
	display: none;
}

.enix-bf-message.success {
	background: #f0fdf4;
	color: #166534;
	border: 1px solid #bbf7d0;
	display: block;
}

.enix-bf-message.error {
	background: #fef2f2;
	color: #991b1b;
	border: 1px solid #fca5a5;
	display: block;
}


/* ============================================================
   CALENDAR WIDGET
   ============================================================ */

.enix-calendar-widget {
	font-family: var(--enix-sans);
	background: transparent;
	padding: 0;
	max-width: 100%;
	margin: 0 auto;
	box-sizing: border-box;
}

.enix-calendar-widget * {
	box-sizing: border-box;
}

/* "CALENDAR" bold title */
.enix-cal-title-main {
	font-family: var(--enix-sans);
	font-size: 18px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	color: #111111;
	margin-bottom: 12px;
	line-height: 1;
}

/* ---- TOOLBAR HEADER — light gray background ---- */
.enix-calendar-widget .enix-cal-header {
	background: #ebebeb;
	border-top-left-radius: 6px;
	border-top-right-radius: 6px;
	padding: 25px 15px 11px 15px;
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 6px;
	margin-bottom: 0;
}

/* Month label area */
.enix-calendar-widget .enix-cal-month-indicator {
	background: #ebebeb;
	padding: 6px 12px 10px 12px;
	margin: 0;
	font-size: 20px;
	font-weight: 800;
	color: #111111;
	width: 100%;
	display: block;
	line-height: 1.2;
}

/* Grid container wrapper */
.enix-calendar-widget .enix-cal-box {
	background: #ebebeb;
	padding: 0 12px 12px 12px;
	border-bottom-left-radius: 6px;
	border-bottom-right-radius: 6px;
}

/* ---- BUTTON GROUPS ---- */

/* Group 1: < > Today | Group 2: Month Week Day List */
.enix-cal-btn-group {
	display: flex;
	border-radius: 5px;
	overflow: hidden;
	flex-shrink: 0;
	gap: 0;
}

.enix-cal-btn-group + .enix-cal-btn-group {
	margin-left: 4px;
}

/* All nav/view buttons — dark teal by default */
.enix-cal-btn {
	background: var(--enix-teal);
	border: none;
	border-right: 1px solid rgba(255,255,255,0.15);
	padding: 7px 13px;
	font-family: var(--enix-sans);
	font-size: 13px;
	font-weight: 500;
	color: #ffffff;
	cursor: pointer;
	line-height: 1.3;
	white-space: nowrap;
	transition: background 0.12s;
}

.enix-cal-btn:last-child {
	border-right: none;
}

.enix-cal-btn:hover:not(.active) {
	background: var(--enix-teal-hover);
}

/* Active view button = solid orange */
.enix-cal-btn.active {
	background: var(--enix-orange) !important;
	color: #ffffff !important;
	font-weight: 600;
}

/* ---- GRID TABLE ---- */

.enix-cal-grid-container {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	background: #ffffff;
	border: 1px solid #cccccc;
}

.enix-cal-grid {
	width: 100%;
	border-collapse: collapse;
	min-width: 460px;
	background: #ffffff;
	table-layout: fixed;
}

/* Day headers: Mon Tue Wed Thu Fri Sat Sun */
.enix-cal-grid thead th {
	border: 1px solid #dddddd;
	padding: 8px 2px;
	background: #ffffff;
	color: #777777;
	font-size: 12px;
	font-weight: 600;
	text-align: center;
	font-family: var(--enix-sans);
}

/* Date cells */
.enix-cal-grid td {
	border: 1px solid #dddddd;
	vertical-align: middle;
	text-align: center;
	background: #ffffff;
	position: relative;
	transition: background 0.1s;
}

/* Day number */
.enix-cal-day-num {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: #1a1a1a;
	margin-bottom: 4px;
	text-align: center;
	line-height: 1;
}

/* Price */
.enix-cal-day-price {
	display: block;
	font-size: 11px;
	font-weight: 400;
	color: #888888;
	text-align: center;
	line-height: 1;
}

/* ---- CELL STATES ---- */

/* Other-month days */
.enix-cal-cell.other-month .enix-cal-day-num {
	color: #cccccc !important;
	font-weight: 400;
}
.enix-cal-cell.other-month .enix-cal-day-price {
	color: #cccccc !important;
}

/* Available */
.enix-cal-cell.available {
	background: #ffffff;
	cursor: pointer;
}
.enix-cal-cell.available:hover {
	background: #fff5ef;
}

/* Unavailable — solid orange, no price */
.enix-cal-cell.unavailable {
	background: var(--enix-orange) !important;
	cursor: not-allowed;
}
.enix-cal-cell.unavailable .enix-cal-day-num {
	color: #ffffff !important;
}
.enix-cal-cell.unavailable .enix-cal-day-price {
	display: none !important;
}

/* Booked — darker orange */
.enix-cal-cell.booked {
	background: #c75010 !important;
}
.enix-cal-cell.booked .enix-cal-day-num {
	color: #ffffff !important;
}
.enix-cal-cell.booked .enix-cal-day-price {
	color: rgba(255,255,255,0.8) !important;
}

/* Today */
.enix-cal-cell.today:not(.booked):not(.unavailable) {
	outline: 2px solid var(--enix-orange);
	outline-offset: -2px;
}

/* Selected */
.enix-cal-cell.selected:not(.booked):not(.unavailable) {
	background: rgba(242,101,34,0.08) !important;
	outline: 2px solid var(--enix-orange);
	outline-offset: -2px;
}

/* ---- LEGEND ---- */

.enix-cal-legend {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: 14px;
	flex-wrap: wrap;
}

.enix-cal-legend-item {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--enix-sans);
	font-size: 13px;
	font-weight: 400;
	color: #333333;
}

.enix-cal-legend-box {
	width: 18px;
	height: 18px;
	border-radius: 3px;
	flex-shrink: 0;
	border: 1px solid #bbbbbb;
}

.enix-cal-legend-box.available {
	background: #ffffff;
	border-color: #aaaaaa;
}
.enix-cal-legend-box.unavailable {
	background: var(--enix-orange);
	border-color: var(--enix-orange);
}
.enix-cal-legend-box.booked {
	background: #c75010;
	border-color: #c75010;
}

/* ---- LIST VIEW ---- */

.enix-cal-list-view {
	list-style: none;
	padding: 0;
	margin: 10px 0 0;
	background: #ffffff;
	border: 1px solid #dddddd;
	border-radius: 5px;
	overflow: hidden;
}

.enix-cal-list-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 11px 13px;
	border-bottom: 1px solid #eeeeee;
}

.enix-cal-list-item:last-child {
	border-bottom: none;
}

.enix-cal-list-date {
	font-weight: 600;
	font-size: 13px;
	color: #222222;
}

.enix-cal-list-status {
	padding: 3px 9px;
	border-radius: 20px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
}

.enix-cal-list-status.available   { background: #f0fdf4; color: #166534; }
.enix-cal-list-status.booked      { background: #fff7ed; color: #c2410c; }
.enix-cal-list-status.unavailable { background: #f3f4f6; color: #555555; }


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 768px) {
	.enix-booking-form-widget { border-radius: 8px; }
	.enix-bf-row { flex-direction: column; gap: 0; margin-bottom: 0; }
	.enix-bf-col { margin-bottom: 12px; }
	.enix-bf-submit { width: 100%; text-align: center; }
	.enix-cal-header { flex-wrap: wrap; gap: 5px; }
	.enix-cal-grid td { height: 56px; }
	.enix-cal-legend { gap: 12px; }
}

@media (max-width: 480px) {
	.enix-bf-tabs { padding: 10px 10px 0; }
	.enix-bf-tab { font-size: 11px; padding: 9px 6px; }
	.enix-bf-form { padding: 12px 12px 16px; }
	.enix-bf-label { font-size: 12px; }
	.enix-bf-input { padding: 8px 10px; font-size: 12px; }
	.enix-bf-submit { font-size: 13px; padding: 11px 22px; }

	.enix-cal-title-main { font-size: 15px; margin-bottom: 10px; }
	.enix-cal-btn { padding: 6px 8px; font-size: 11px; }
	.enix-cal-grid { min-width: 380px; }
	.enix-cal-grid thead th { padding: 6px 2px; font-size: 10px; }
	.enix-cal-grid td { height: 46px; padding: 6px 2px 3px; }
	.enix-cal-day-num { font-size: 12px; margin-bottom: 2px; }
	.enix-cal-day-price { font-size: 9px; }
	.enix-cal-legend { gap: 9px; margin-top: 10px; }
	.enix-cal-legend-item { font-size: 11px; }
	.enix-cal-legend-box { width: 15px; height: 15px; }
	.enix-cal-list-item { padding: 9px 11px; flex-direction: column; align-items: flex-start; gap: 4px; }
}


/* ============================================================
   v1.0.5 — Elementor-kit button parity + REQUEST BOOKING form
   ============================================================ */

/* Elementor global button styling (theme parity) */
.elementor-kit-102 button,
.elementor-kit-102 input[type="button"],
.elementor-kit-102 input[type="submit"],
.elementor-kit-102 .elementor-button {
	background-color: var(--e-global-color-accent);
	font-family: var(--e-global-typography-text-font-family), Sans-serif;
	font-size: var(--e-global-typography-text-font-size);
	font-weight: var(--e-global-typography-text-font-weight);
	text-transform: var(--e-global-typography-text-text-transform);
	line-height: var(--e-global-typography-text-line-height);
	color: var(--e-global-color-secondary);
	border-style: solid;
	border-width: 0px 0px 0px 0px;
	border-color: var(--e-global-color-75e8b96);
	border-radius: 50px 50px 50px 50px;
	padding: 8px 25px 8px 25px;
}

/* ---- CALENDAR BUTTONS — themed pill buttons (separate class) ---- */
.enix-calendar-widget .enix-cal-btn-group {
	overflow: visible;
	gap: 6px;
}
.enix-calendar-widget .enix-cal-btn-group + .enix-cal-btn-group {
	margin-left: 8px;
}

.enix-calendar-widget .enix-cal-btn.enix-cal-pill,
.enix-calendar-widget .enix-cal-btn {
	background-color: var(--e-global-color-accent, var(--enix-orange));
	color: var(--e-global-color-secondary, #ffffff);
	border: none;
	border-radius: 50px;
	padding: 8px 20px;
	font-family: var(--e-global-typography-text-font-family, var(--enix-sans)), Sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
	white-space: nowrap;
	transition: filter 0.15s, background 0.15s;
	border: 1px solid;
}

.enix-calendar-widget .enix-cal-btn:hover:not(.active) {
	filter: brightness(0.92);
}

.enix-cal-btn:hover:not(.active) {
    background: #f26522;
    color: white;
    border: 1px #f26522;
}

.enix-calendar-widget .enix-cal-btn.active {
	background-color: var(--enix-teal) !important;
	color: #ffffff !important;
}

/* ============================================================
   REQUEST BOOKING form — underline tabs (matches reference image)
   ============================================================ */
.enix-booking-form-widget .enix-bf-tabs {
	display: flex;
	align-items: stretch;
	gap: 0;
	padding: 6px 0 0 0;
	margin: 0 16px;
	border-bottom: none;
}

.enix-booking-form-widget .enix-bf-tab:hover {
    /* border: lightyellow; */
    /* border-style: solid; */
    border-width: 0;
    /* border-color: var(--e-global-color-accent); */
    border-radius: 0;
    border-bottom: 2px solid;
}

.enix-booking-form-widget .enix-bf-tab:active {
    /* border: lightyellow; */
    /* border-style: solid; */
    border-width: 0;
    /* border-color: var(--e-global-color-accent); */
    border-radius: 0;
    border-bottom: 2px solid;
}

.enix-booking-form-widget .enix-bf-tab:focus {
    /* border: lightyellow; */
    /* border-style: solid; */
    border-width: 0;
    /* border-color: var(--e-global-color-accent); */
    border-radius: 0;
    border-bottom: 2px solid;
}

.enix-booking-form-widget .enix-bf-tab {
	flex: 1;
	background: transparent !important;
	border: none;
	border-bottom: 2px solid #d9d9d9;
	border-radius: 0;
	padding: 14px 6px;
	font-family: var(--enix-sans);
	font-size: 17px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	color: #1f2a44;
	opacity: 1;
	cursor: pointer;
	text-align: center;
	transition: color 0.15s, border-color 0.15s;
}

.enix-booking-form-widget .enix-bf-tab:first-child {
	text-align: left;
}

.enix-booking-form-widget .enix-bf-tab:hover {
	color: var(--enix-orange);
}

.enix-booking-form-widget .enix-bf-tab.active {
	color: var(--enix-orange);
	border-bottom-color: var(--enix-orange);
}

/* Request-only / booking-only toggling (JS sets display) */
.enix-bf-request-only { display: none; }

/* Textarea field */
.enix-bf-textarea {
	resize: vertical;
	min-height: 110px;
	font-family: var(--enix-sans);
}

/* SEND / submit pill */
.enix-booking-form-widget .enix-bf-submit {
	border-radius: 4px;
	padding: 14px 34px;
	font-size: 14px;
	letter-spacing: 1.5px;
}