/* Thousand Nights — VikBooking front-end restyle (loaded after Vik's own CSS).
   Brand tokens come from the Blocksy palette: navy #3A4F66, gold #CDA160 / #AE854D. */

:root {
	--tn-navy: #3A4F66;
	--tn-navy-dark: #2C3E52;
	--tn-gold: #CDA160;
	--tn-gold-dark: #AE854D;
	--tn-ink: #141413;
	--tn-muted: #6B7A8C;
	--tn-line: #E1E8ED;
	--tn-band: #F2F5F7;
	--tn-page: #FAFBFC;
	--tn-radius: 12px;
	--tn-radius-sm: 7px;
	--tn-shadow: 0 1px 2px rgba(20,20,19,.04), 0 8px 24px rgba(58,79,102,.08);

	/* Re-map Vik's variables to the brand */
	--vbo-white-bg-color: #fff;
	--vbo-grey-bg-color: var(--tn-band);
	--vbo-light-grey-bg-color: var(--tn-band);
	--vbo-border-color: var(--tn-line);
	--vbo-light-border-color: var(--tn-line);
	--vbo-text-color: var(--tn-ink);
	--vbo-body-text-color: var(--tn-ink);
	--vbo-middle-text-color: var(--tn-navy);
	--vbo-light-text-color: var(--tn-muted);
	--vbo-input-style: #fff;
	--vbo-base-color: var(--tn-navy);
	--vbo-base-color-hover: var(--tn-navy-dark);
	--vbo-darkblue-color: var(--tn-navy-dark);
	--vbo-blue-color: var(--tn-navy);
	--vbo-blue-color-hover: var(--tn-navy-dark);
	--vbo-lightblue-color: var(--tn-gold);
	--vbo-lightblue-color-hover: var(--tn-gold-dark);
	--vbo-green-color: #2F7D5B;
	--vbo-green-color-hover: #276A4D;
	--vbo-orange-color: var(--tn-gold-dark);
	--vbo-orange-color-hover: #8F6C3C;
}

/* ---------- Typography ---------- */
.vbdivsearch, .vbo-results-wrapper, .vbo-showprc-wrapper, .vbo-oconfirm-wrapper,
.vbo-stepbar, .vbo-results-head, .vbo-booking-wrapper, .vbo-tinyurl-wrapper,
.vbo-search-mainview, [class^="vbo-"], [class^="vb"] .btn, .vbdivsearch .btn, .ui-datepicker {
	font-family: inherit;
}
.vbo-results-wrapper h3, .vbo-results-wrapper h4, .vbo-showprc-wrapper h3, .vbo-showprc-wrapper h4,
.vbo-oconfirm-wrapper h3, .vbo-oconfirm-wrapper h4, .vbrowcname, .vbo-showprc-roomname, .vbo-oconfirm-roomname {
	color: var(--tn-navy);
	font-weight: 500;
	letter-spacing: .01em;
}
.vbrowcname, .vbrowcname a, .vbo-showprc-roomname { font-size: 1.45rem; color: var(--tn-navy); }
.vbo-pref-color-text { color: var(--tn-gold-dark) !important; }

/* ---------- Buttons ---------- */
.vbo-pref-color-btn, .vbo-search-submit .btn, .btn.booknow, .vbsubmit, .vbsearchmainsbmt,
.vbo-pincode-sbmt, .vbsubmitcoupon, input[type="submit"].btn {
	background: var(--tn-navy) !important;
	color: #fff !important;
	border: 1px solid var(--tn-navy) !important;
	border-radius: var(--tn-radius-sm) !important;
	padding: 12px 26px !important;
	font-size: .875rem !important;
	font-weight: 600 !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	line-height: 1.2;
	box-shadow: none !important;
	transition: background .18s ease, border-color .18s ease, transform .18s ease;
	cursor: pointer;
}
.vbo-pref-color-btn:hover, .vbo-search-submit .btn:hover, .btn.booknow:hover, .vbsubmit:hover,
.vbsearchmainsbmt:hover, input[type="submit"].btn:hover {
	background: var(--tn-gold-dark) !important;
	border-color: var(--tn-gold-dark) !important;
	color: #fff !important;
}
.vbo-pref-color-btn-secondary, .btn.vbo-pref-color-btn-secondary {
	background: transparent !important;
	color: var(--tn-navy) !important;
	border: 1px solid var(--tn-navy) !important;
}
.vbo-pref-color-btn-secondary:hover { background: var(--tn-band) !important; }
a.vbo-goback-link { color: var(--tn-navy); text-decoration: none; font-size: .9rem; }
a.vbo-goback-link:hover { color: var(--tn-gold-dark); }

/* ---------- Search form (booking page + home widget) ---------- */
.vbdivsearch {
	background: #fff !important;
	border: 1px solid var(--tn-line);
	border-radius: var(--tn-radius);
	box-shadow: var(--tn-shadow);
	padding: 28px !important;
	box-sizing: border-box;
}
.vbdivsearch label, .vbo-search-num-adults-entry-label, .vbo-search-num-children-entry-label {
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--tn-muted);
	font-weight: 600;
}
.vbdivsearch input[type="text"], .vbdivsearch select, .vbo-search-inpblock input, .vbo-search-inpblock select,
.vbo-search-num-adults-entry-inp select, .vbo-search-num-children-entry-inp select, .vbo-search-roomnum select,
.vbdivsearch .vbo-caltrigger {
	height: 46px;
	border: 1px solid var(--tn-line) !important;
	border-radius: var(--tn-radius-sm) !important;
	background: #fff !important;
	color: var(--tn-ink);
	padding: 0 12px;
	font-size: .95rem;
	box-shadow: none !important;
}
.vbdivsearch input[type="text"]:focus, .vbdivsearch select:focus {
	outline: none;
	border-color: var(--tn-gold) !important;
	box-shadow: 0 0 0 3px rgba(205,161,96,.18) !important;
}
.vbo-search-submit { margin-top: 18px !important; }

/* ---------- Step bar ---------- */
.vbstepsbarcont { margin: 0 0 22px; }
.vbo-stepbar li { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tn-muted); }
.vbo-stepbar li a { color: inherit; }
.vbo-stepbar li.vbo-step-complete, .vbo-stepbar li.vbo-step-complete a { color: var(--tn-navy); }
.vbo-stepbar li.vbo-step-current, .vbo-stepbar li.vbo-step-current a { color: var(--tn-gold-dark); font-weight: 600; }

/* ---------- Stay summary card ---------- */
.vbo-results-head {
	background: #fff;
	border: 1px solid var(--tn-line) !important;
	border-radius: var(--tn-radius) !important;
	box-shadow: var(--tn-shadow) !important;
	padding: 16px 20px !important;
}
.vbo-results-head-det-lbl { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tn-muted); }
.vbo-results-head-det-val { color: var(--tn-navy); font-weight: 600; }

/* ---------- Search results: room cards ---------- */
.vbo-results-wrapper .vblistroomblock, .vbo-searchresults-classic-wrap .vblistroomblock {
	background: #fff;
	border: 1px solid var(--tn-line) !important;
	border-right: 1px solid var(--tn-line) !important;
	border-radius: var(--tn-radius);
	overflow: hidden;
	box-shadow: var(--tn-shadow);
	margin-bottom: 22px;
}
.vblistroomblock img.vblistimg { border-radius: 0; object-fit: cover; }
.vbdescrlistdiv { padding: 18px 22px !important; }
.vbrowcdescr { color: var(--tn-muted); line-height: 1.6; }
.vbcontdivtot {
	border-top: 1px solid var(--tn-line) !important;
	background: var(--tn-band);
	padding: 14px 16px !important;
	box-sizing: border-box;
}
.vbo_price, .vbsrowprice, .vbprice, .vbo-showprc-price-entry-cost, .vbo-oconfirm-summary-room-cell-tot {
	color: var(--tn-navy);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.vbo_price .vbo_currency, .vbcurrency { color: var(--tn-gold-dark); font-weight: 500; }
.vbo-room-carat img { opacity: .75; }
.vbo-results-style-option-active { color: var(--tn-gold-dark); }
.vbselectordiv { border-top: 0 !important; }

/* ---------- Rate selection (showprc) ---------- */
.vbo-showprc-room-block {
	background: #fff;
	border: 1px solid var(--tn-line);
	border-radius: var(--tn-radius);
	box-shadow: var(--tn-shadow);
	padding: 22px;
	margin-bottom: 22px;
	overflow: hidden;
}
.vbo-showprc-room-head { margin-bottom: 12px; }
.vbo-showprc-pricetable, .vbo-showprc-optionstable { border-collapse: separate; border-spacing: 0; width: 100%; }
.vbo-showprc-price-entry, .vbo-showprc-option-entry {
	border: 1px solid var(--tn-line);
	border-radius: var(--tn-radius-sm);
	padding: 12px 14px;
	margin: 8px 0;
	display: flex;
	align-items: center;
	gap: 14px;
	background: #fff;
	transition: border-color .15s ease, background .15s ease;
}
.vbo-showprc-price-entry:has(input:checked), .vbo-showprc-option-entry:has(input:checked) {
	border-color: var(--tn-gold);
	background: #FBF7F0;
}
.vbo-showprc-price-entry-rateplan { flex: 1; }
.vbprice_freecanc { color: #2F7D5B; }
.vbprice_freecanc_no { color: var(--tn-muted); }
.vbprice_breakfast { color: var(--tn-navy); }
.vbo-showprc-price-entry-cost { font-size: 1.15rem; white-space: nowrap; }
.vbo-radio input[type="radio"], .vbo-showprc-price-entry-radio input, .vbo-showprc-option-entry-input input { accent-color: var(--tn-navy); width: 18px; height: 18px; }

/* ---------- Checkout (oconfirm) ---------- */
.vbo-oconfirm-summary-container, .vbo-oconfirm-summary-room-wrapper {
	background: #fff;
	border: 1px solid var(--tn-line);
	border-radius: var(--tn-radius);
	box-shadow: var(--tn-shadow);
	overflow: hidden;
}
.vbo-oconfirm-summary-room-head { background: var(--tn-band); }
.vbo-oconfirm-summary-room-head-cell { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tn-muted); padding: 12px 14px; }
.vbo-oconfirm-summary-room-row > div, .vbo-oconfirm-summary-room-row > td { padding: 12px 14px; border-top: 1px solid var(--tn-line); }
.vbo-oconfirm-summary-total-wrapper { background: var(--tn-navy); color: #fff; border-radius: 0 0 var(--tn-radius) var(--tn-radius); }
.vbo-oconfirm-summary-total-wrapper .vbo_price, .vbo-oconfirm-summary-total-wrapper .vbprice, .vbo-oconfirm-summary-total-wrapper .vbcurrency { color: #fff; }
.vbo-oconfirm-summary-total-row { padding: 12px 14px; }
.vbo-oconfirm-middlep, .vbcustomfields { margin-top: 26px; }
.vbcustomfields, .vbo-oconfirm-paymentopts, .vbo-coupon-outer, .vbo-enterpin-block {
	background: #fff;
	border: 1px solid var(--tn-line);
	border-radius: var(--tn-radius);
	box-shadow: var(--tn-shadow);
	padding: 22px;
	margin-bottom: 22px;
	box-sizing: border-box;
}
.vbo-oconfirm-cfield-label { font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--tn-muted); font-weight: 600; margin-bottom: 4px; display: block; }
.vbinput, .vbtextarea, .vbcustomfields select, .vbf-countryinp, .vbf-phoneinp, .vbinputcoupon, .vbo-enterpin-inner input {
	border: 1px solid var(--tn-line) !important;
	border-radius: var(--tn-radius-sm) !important;
	padding: 11px 12px !important;
	background: #fff !important;
	color: var(--tn-ink);
	font-size: .95rem;
	box-shadow: none !important;
}
.vbinput:focus, .vbtextarea:focus, .vbcustomfields select:focus { outline: none; border-color: var(--tn-gold) !important; box-shadow: 0 0 0 3px rgba(205,161,96,.18) !important; }
.vbrequired { color: var(--tn-gold-dark); }
.vbo-oconfirm-paymethod-item {
	border: 1px solid var(--tn-line);
	border-radius: var(--tn-radius-sm);
	padding: 12px 14px;
	margin-bottom: 8px;
	transition: border-color .15s ease, background .15s ease;
}
.vbo-oconfirm-paymethod-item-active, .vbo-oconfirm-paymethod-item:has(input:checked) { border-color: var(--tn-gold); background: #FBF7F0; }
.vboconfirmbottom { text-align: center; padding-top: 6px; }
.vboconfirmbottom .btn { min-width: 260px; }

/* ---------- Alerts ---------- */
.vbo-alert-container-confirm, .vbo-alert-container-confirm * { color: var(--tn-ink); }

/* ---------- Datepicker ---------- */
.ui-datepicker { border: 1px solid var(--tn-line) !important; border-radius: var(--tn-radius) !important; box-shadow: var(--tn-shadow); padding: 10px; }
.ui-datepicker .ui-datepicker-header { background: var(--tn-navy) !important; color: #fff !important; border: 0 !important; border-radius: var(--tn-radius-sm) !important; }
.ui-datepicker .ui-datepicker-header a, .ui-datepicker .ui-datepicker-title { color: #fff !important; }
.ui-datepicker td a, .ui-datepicker td span { border-radius: 6px !important; border: 0 !important; text-align: center !important; }
.ui-datepicker td a.ui-state-active, .ui-datepicker td a.ui-state-active:hover { background: var(--tn-gold) !important; color: #fff !important; }
.ui-datepicker td a.ui-state-hover { background: var(--tn-band) !important; color: var(--tn-navy) !important; }
.ui-datepicker td.ui-datepicker-today a { border: 1px solid var(--tn-gold) !important; background: #fff !important; }

/* ---------- RTL ---------- */
[dir="rtl"] .vbdivsearch, [dir="rtl"] .vbo-results-wrapper, [dir="rtl"] .vbo-showprc-wrapper, [dir="rtl"] .vbo-oconfirm-wrapper,
[dir="rtl"] .vbo-results-head, [dir="rtl"] .vbo-stepbar { direction: rtl; text-align: right; }
[dir="rtl"] .vbo-stepbar li { float: right; }
[dir="rtl"] .vbo-results-head > .vbo-results-chdates { float: left; margin-left: 0; margin-right: auto; }
[dir="rtl"] .vblistroomblock, [dir="rtl"] .vbimglistdiv { float: right; }
[dir="rtl"] .vbo-showprc-price-entry, [dir="rtl"] .vbo-showprc-option-entry { flex-direction: row-reverse; }
[dir="rtl"] .vbo-stepbar li, [dir="rtl"] .vbdivsearch label, [dir="rtl"] .vbo-results-head-det-lbl,
[dir="rtl"] .vbo-oconfirm-cfield-label, [dir="rtl"] .vbo-oconfirm-summary-room-head-cell, [dir="rtl"] .btn { letter-spacing: 0; }

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
	.vbdivsearch { padding: 20px !important; }
	.vbo-search-submit .btn, .vboconfirmbottom .btn { width: 100%; }
	.vbo-showprc-room-block, .vbcustomfields, .vbo-oconfirm-paymentopts { padding: 16px; }
	.vbo-showprc-price-entry, .vbo-showprc-option-entry { flex-wrap: wrap; }
	.vbo-stepbar li { font-size: .68rem; letter-spacing: .04em; }
}

/* Link from a result card to the room page */
.vbrowcdescr .tn-room-link { display: inline-block; margin-top: 8px; color: var(--tn-gold-dark); font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.vbrowcdescr .tn-room-link:hover { color: var(--tn-navy); }
[dir="rtl"] .vbrowcdescr .tn-room-link { letter-spacing: 0; }
